正确的JSON结构

时间:2011-02-20 08:26:21

标签: ruby-on-rails json

我需要通过JSON返回页面中的排行榜数据,这是正确的结构,是这样的

{
 pages: [
         {
          [
           {user: John,
            rating:11},
           {user: Bob,
            rating: 20},
           {user: Andy,
            rating: 30},
            ...
          ]
         },
         {
          [
           {user: Sally,
            rating: 110},
           {user: Peter,
            rating: 115},
           {user: Jim,
            rating: 350},
            ...
          ]
         },
         ...
        ]
}         

或者这是(正确的JSON

{
    "pages": [
        [
            {
                "user": "John",
                "rating": 11 
            },
            {
                "user": "Bob",
                "rating": 20 
            },
            {
                "user": "Andy",
                "rating": 30 
            } 
        ],
        [
            {
                "user": "Sally",
                "rating": 110 
            },
            {
                "user": "Peter",
                "rating": 115 
            },
            {
                "user": "Jim",
                "rating": 350 
            } 
        ] 
    ]
}

更新 感谢所有的快速答案,是的,我确实手工构建了JSON,这显然不是一个好主意,正如你们有些人指出的那样。第二个选项是正确的JSON,我已经使用正确的JSON结构更新了它,以便将来可能正在阅读它。

4 个答案:

答案 0 :(得分:2)

后者是正确的,但您需要用双引号括起所有字符串。在第一个右方括号之后,您还使用了句点而不是逗号。

您可能希望使用JSONLint来验证您的JSON。

答案 1 :(得分:1)

你的第一个例子没有多大意义:pages是一个数组,其元素是对象,但没有键值对。你的第二个例子更有意义:pages是一个数组,其中元素又是另一个包含对象列表的数组。

请注意,您的示例都不是有效的JSON。如前一段所述,您的第一个示例包含没有键值对的对象。此外,在两个示例中,都没有引用字符串。在JSON中,必须引用每个字符串,无论是键还是值。

答案 2 :(得分:1)

您可能想要查看此JSON验证程序:) http://www.jsonlint.com/

答案 3 :(得分:0)

首先,第一个选项是无效的JSON。数组:

{
 pages: [
         {
          [ <== HERE

...需要一个名字。 E.g。

{
 pages: [
         {
           "SomeName": [

另外,假设John,Bob,Andy等是字符串,那么它们应该是:

[
           {user: "John",
            rating:11},
           {user: "Bob",
            rating: 20},
           {user: "Andy",
            rating: 30},
            ...
]

有些人还会争辩说你的词典成员名称应该被引用。