【问题标题】:Is this json wrong?这个json错了吗?
【发布时间】:2015-05-09 08:39:01
【问题描述】:

我创建了以下 json:

{ "posts" : [
    {"post" : 
        {"person" : somePerson,
        "messages" : [person says : Hello how are you,person2 says : I\'m fine]
        }
    },
    {"post" : 
        {"person" : someOtherPerson,
        "messages" : [person says : I\'m happy,person2 says : me too]
        }
    }
  ] 
}

但是 jquery .done 并没有被这个输入调用。我怀疑json的格式有问题。我不知道是否允许我在 json 对象中传递数组“消息”。如果不是,我该如何解决?

【问题讨论】:

  • 消息应该是一个对象。并且必须引用键和值。

标签: jquery json object


【解决方案1】:

使用http://jsonlint.com/或类似服务:

第 5 行的解析错误: ...“人”:某人, ----------------------^ 期待 'STRING'、'NUMBER'、'NULL'、'TRUE'、'FALSE'、'{'、'['

【讨论】:

    【解决方案2】:

    您的 JSON 格式错误,让我告诉您我该怎么做:

    { "posts" : [
    {
      "person": "Person1",
      "messages": [
        {
          "person": "Person1",
          "message": "I'm happy"
        },
        {
          "person": "Person2",
          "message": "me too"
        }
      ]
    },
    {
      "person": "Person3",
      "messages": [
        {
          "person": "Person3",
          "message": "Hello how are you"
        },
        {
          "person": "Person2",
          "message": "I'm fine"
        }
      ]
    }
    

    ] }

    *你有一个posts 的数组,对吗?那为什么要在其中添加带有"post" 属性的对象呢?这没有意义,只需像我一样创建一个定义每个帖子数据的对象

    *在 JSON 中,数组不能是你想要的对象,数组只包含对象或值,如字符串或数字...

    【讨论】:

      【解决方案3】:

      从属性名称中删除空格。将人说更改为 person_says。并在引号中插入字符串。

      【讨论】:

      • 在这种情况下,必须将“消息”更改为对象。或者他应该使用没有键的消息并将整个项目作为值发送,即["person 1 says : something","person 2 says : something"]
      • 当然,“messages”必须是对象数组: [{"person_1_says": "something"},{"person_2_says": "something"}] 在实际项目中,object必须有两个字段、名称和消息。
      猜你喜欢
      • 2012-09-22
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 2015-04-26
      • 2014-09-12
      • 2014-07-29
      • 1970-01-01
      • 2014-08-19
      相关资源
      最近更新 更多