<p>您已经收到一个JSON文档,其中包含一个嵌套的JSON文档,它本身包含更多的JSON文档,内部像<a href="https://en.wikipedia.org/wiki/Matryoshka_doll" rel="nofollow noreferrer">Matryoshka doll</a>。在</p>
<p>不幸的是,您只能解码一个级别,因为下一个级别是<em>中断的</em>。在用于第三级JSON文档的<code>"</code>引号字符前面应该有<code>\</code>转义,就像第二级引号嵌入到顶级JSON文档中时转义一样。这些都丢失了,因此没有JSON解析器可以对其进行解码。JSON字符串周围的分隔符已被作为JSON字符串值一部分的散乱、未转义的<code>"</code>字符破坏。在</p>
<p>您需要修复发送此数据的<em>客户端</em>,并将这些格式错误的值作为无效请求丢弃。在</p>
<p>为完整起见,有效的<em>文档如下所示:</p>
<pre><code>>>> v0 = '''{ "ReferenceValue":"Elevation", "Prediction":"22.216558464"}'''
>>> v1 = '''{ "ReferenceValue":"Wind Speed", "Prediction":"42.216558464"}" }'''
>>> data_value = json.dumps({'Value0': v0, 'Value1': v1})
>>> print(json.dumps({'Data': data_value, 'Date': '1/4/2019 9:52:2', 'DeviceId': '192-2993-2993', 'Key': '{XXXX-XXXX-XXXX}', 'Location': '-1.000000000,-1.000000000'}, indent=4))
{
"Data": "{\"Value0\": \"{ \\\"ReferenceValue\\\":\\\"Elevation\\\", \\\"Prediction\\\":\\\"22.216558464\\\"}\", \"Value1\": \"{ \\\"ReferenceValue\\\":\\\"Wind Speed\\\", \\\"Prediction\\\":\\\"42.216558464\\\"}\\\" }\"}",
"Date": "1/4/2019 9:52:2",
"DeviceId": "192-2993-2993",
"Key": "{XXXX-XXXX-XXXX}",
"Location": "-1.000000000,-1.000000000"
}
</code></pre>
<p>注意<code>\"</code>和{<cd5>}在<code>Data</code>值中转义。解码时,<code>Data</code>的字符串值将删除一级转义序列,形成<code>"</code>和{<cd4>}序列,其中<code>"</code>引号是JSON语法的一部分,<code>\"</code>是字符串值的一部分,这些字符串值又可以被解码为在最里面的JSON文档中使用的<code>"</code>。在</p>