JSON数组语法.花括号(对象语法)是严格必要的吗

JSON array syntax. Are the curly brackets (object syntax) strictly necessary?

本文关键字:语法 对象 数组 JSON      更新时间:2023-09-26

json字符串是否可能只包含方括号?例如:

[["state","accepted"],["r_by_uid",1]]

解析该字符串时出现意外的字符错误。。。(我写这个剧本已经很久了,我想它以前也行得通)。

解析json字符串会从字符串中生成一个对象吗?或者可以将字符串解析为数组吗?

基本上,我只是想把字符串解析成一个数组,而不是一个对象
我在谷歌上搜索了一些例子,但找不到任何只使用方括号的例子。

根据请求,这里是保存json字符串的标签:

<button data-fproc='[["state","accepted"],["r_by_uid","1"]]' class="request_state_button">

卷括号并不是绝对必要的。

[["state","accepted"],["r_by_uid",1]]是有效的JSON。

JSON文本可以是对象或数组。

请参阅http://json.org/以及中的JSON语法部分https://www.ietf.org/rfc/rfc4627.txt

您可以在http://jsonlint.com/


在Javascript中,JSON.parse()返回一个数组:

JSON.parse('[["state","accepted"],["r_by_uid",1]]')
// result [["state", "accepted"], ["r_by_uid", 1]]

请注意,数组也是Javascript中的对象。

它也适用于jQuery.parseJSON()

jQuery.parseJSON('[["state","accepted"],["r_by_uid",1]]')
// result [["state", "accepted"], ["r_by_uid", 1]]

这可能会解释您的问题:

 var aAsArray = [["state","accepted"],["r_by_uid",1]];
 var aAsString = '[["state","accepted"],["r_by_uid",1]]';
 ​JSON.parse(aAsArray);​​​    //Uncaught SyntaxError: Unexpected token ....
 JSON.parse(aAsString);