如何修复混合的JSON编码字符串

时间:2013-04-15 19:10:40

标签: python ruby json string

我面临以下问题。我有JSON字符串,其中内部数组/对象有时被写为转义字符串,有时不写。比如我有

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

一个坏人:

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

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

那么我如何能够智能地检测到值是否是需要再次通过JSON.parse的值?只是试着抓住这种情况?

1 个答案:

答案 0 :(得分:2)

这实际上取决于您正在处理的双重编码数据的类型,但测试第一个字符可能就足够了。如果它是[{,那么您可以尝试使用JSON对其进行解码,如果成功,则替换它。