2013-04-15 37 views
1

我面临以下问题。我有JSON字符串,其中内部数组/对象有时写成转义字符串,有时不会。比如我有如何修复混合的JSON编码字符串

{ "author": "Jack", 
    "meta": ["a", "b"]} 

和一个坏:

{ "author": "Jack", 
    "meta": "[\"a\", \"b\"]"} 

如果我分析了后者,我只会得到的元属性的字符串。这可以通过再次通过JSON解析器传递元属性来解决。但是,如果我通过JSON.parse(Ruby)或JSON.load(Python)传递它,那么问题可能是我没有处理转义字符串,但可能是一个简单的数字"15.3"。这会导致错误。

那么我该如何智能检测,值是否是需要再次通过JSON.parse的值?只是试图捕捉这种情况?

+0

'json.loads('15.3')'在Python中工作正常。 – nneonneo

+1

我宁愿问一下如何从任何鳕鱼输出字符串获得一致的JSON格式,而不是试图找出如何检测和纠正不规范的JSON。 –

+0

在输出后者JSON的代码中的某处相当于'array.to_json.to_json'(可能是由于递归或嵌入结构) –

回答

2

这真的取决于那种你要处理的双重编码的数据,但在测试的第一个字符可能就足够了。如果是[{,那么您可以尝试使用JSON对其进行解码,如果成功,则将其替换为该值。