2012-07-10 99 views
1

json字符串可能仅包含方括号吗?例如。 :JSON数组语法。花括号(对象语法)是否严格必要?

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

我从解析该字符串...得到意想不到的字符错误(很长一段时间,因为我对这个剧本的工作,我认为这工作之前)。

解析json字符串会不会使字符串中的对象?或者有可能将字符串解析成数组?

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

由于这里要求是保存JSON字符串标签:

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

粘贴HTML ' – Esailija 2012-07-10 13:48:03

+0

@Esailija there you go ... – Tudor 2012-07-10 13:55:43

+0

Works fine here http://jsfiddle.net/7ARmP/1/查看任何可能的差异,例如当元素不存在时调用'.attr' – Esailija 2012-07-10 13:57:08

回答

3

花括号是不是绝对必要的。

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

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

http://json.org/https://www.ietf.org/rfc/rfc4627.txt

JSON语法部分,您可以在http://jsonlint.com/


在Javascript中验证您的JSON,JSON.parse()返回数组:

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

注意数组也是J中的对象avascript。

它与jQuery.parseJSON()太:

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

但我得到JSON.parse:意外的字符错误,我不知道为什么。使用jquery函数进行分析 – Tudor 2012-07-10 13:41:51

+0

它也适用于jQuery.parseJSON()。你打电话过得怎么样? – arnaud576875 2012-07-10 13:44:08

+0

$ .parseJSON($(this).attr('data-fproc')),da-fproc是问题中的json字符串,从html源文件复制 – Tudor 2012-07-10 13:46:46

1

也许这说明您的问题:`数据fproc = “榜样”:因为它出现在查看源代码,像

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);