1
json_arr = "{"name" : "John","class":"09"},{"name":"Miley","class":"10"}"  

这是一个有效的 JSON 数组吗?它是 JSON 中的数组数组吗?我对此很陌生,有点困惑。如果是正确的,我该如何遍历这个数组并解析每个 json 数组?谢谢!

我写了这个:

require 'json'
json_arr.each do |x|
pa = JSON(x)
end

当我打印 pa 时,它没有被解析。

4

5 回答 5

6

它不是一个有效的数组,JSON 数组被 [] 包围。此外,您在双引号内使用了未转义的双引号。

接近有效数组的东西看起来像这样:

[{"name":"john", "class":"09"},{"name":"Miley","class":"10"}]

于 2012-08-02T09:35:13.167 回答
2

您必须用以下内容包围您的数组[]

json_arr = '[{"name" : "John","class":"09"},{"name":"Miley","class":"10"}]'

为了遍历数组,您必须解析JSON 字符串:

arr = JSON.parse(json_arr)
# => [{"name"=>"John", "class"=>"09"}, {"name"=>"Miley", "class"=>"10"}]
arr.each do |x|
  # do something with x
end
于 2012-08-02T09:43:04.603 回答
1

在此站点http://jsonlint.com/检查您的 json 数组

于 2012-08-02T09:37:56.217 回答
0

json 中的数组遵循此语法[item1, item2, item3],因此您缺少[].

于 2012-08-02T09:35:29.870 回答
0

简而言之:不,它无效。这就是你要找的:

[
        {
                "name" : "John",
                "class" : "09"
        },
        {
                "name" : "Miley",
                "class" : "10"
        }
]

将来要对此进行测试,请尝试使用此工具

于 2012-08-02T09:39:07.570 回答