1

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

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

我在解析该字符串时遇到了意外的字符错误……(自从我研究这个脚本以来已经很久了,我认为它以前有效)。

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

基本上我只想将字符串解析为数组,而不是对象。
我搜索了一些示例,但找不到任何仅使用方括号的示例。

这里要求的是保存 json 字符串的标签:

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

2 回答 2

3

花括号不是绝对必要的。

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

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

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

您可以在http://jsonlint.com/验证您的 JSON


在 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]]
于 2012-07-10T13:39:01.660 回答
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);
于 2012-07-10T13:41:42.580 回答