JSON校验报错“Expecting 'STRING', got '{'”原因及嵌套合法性咨询
JSON解析错误原因及嵌套问题解答
错误原因
你的JSON解析错误出在第6行,核心问题是:JSON对象必须严格遵循「键名(字符串): 值」的键值对结构。你在"header"对应的对象结束后,直接写了一个{...},没有给这个对象指定对应的键名。解析器原本期望看到一个字符串类型的键名,结果收到了左大括号{,因此抛出了Expecting 'STRING', got '{'的错误。
错误位置的代码片段:
} ,{ "message_timestamp":"2022-12-07 11:35::44" ...
这里的{前缺少了类似"body"这样的键名,正确写法应该是"body": { ... }这类带键名的结构。
JSON是否允许大括号嵌套?
完全允许。JSON的对象({}包裹的结构)本身就支持嵌套其他对象,比如你写的"header": {...}就是典型的大括号嵌套,这种结构是合法的。只要嵌套内容符合JSON语法规则(键值对格式正确、引号使用规范等),就没有问题。
修正后的示例JSON
给后面的对象添加键名(比如"body"),修正后的合法JSON如下:
{ "header": { "appId": "xxyy", "token": "token", "messageId": "messageId" }, "body": { "message_timestamp": "2022-12-07 11:35::44", "wins2rms": { "data_ind": "NONSELLABLE", "data_row": 6, "data_set": [ { "loc": "9981", "loc_type": "W", "item": "00000160", "qty": 20, "reason": "Q", "rms_ind": "Y" } ] } } }
内容的提问来源于stack exchange,提问作者Gautam S
相关产品推荐
相关产品推荐

