解析前两个JSON对象的JSON结构

JSON structure for two JSON objects before parsing?

本文关键字:JSON 两个 对象 结构      更新时间:2023-09-26

我是JSON的新手,我有一个相当基本的问题....

下面是一个JSON示例,它是来自PHP页面的响应。我的目的是有两个JSON对象:Photos和Comments。不幸的是,我的JSON是有缺陷的,它没有正确格式化。我不知道如何构造JSON,以便我可以获得两个对象。如果两个对象的JSON是正确的,那么这应该是什么样子呢?换句话说,我需要在Photos和Comments之间做些什么来表明它们是两个不同的对象?:

{"Photos": [ {"Filename": "5962230079803.jpg", "PhotoID": "39"}] "Comments": [ {"UserID": "100000660901552", "Comment": "Hello!"}]}

您没有关闭数组。试试这个:

{
    "Photos": [
        {
            "Filename": "5962230079803.jpg",
            "PhotoID": "39"
        }
    ],
    "Comments": [
        {
            "UserID": "100000660901552",
            "Comment": "Hello!"
        }
    ]
}

使用JSONLint验证JSON

在每个元素之间添加逗号:

{
  "Photos": [{"Filename": "5962230079803.jpg", "PhotoID": "39"}],
  "Comments": [{"UserID": "100000660901552", "Comment": "Hello!"}]
}

如果您正在定义和解析这个JSON结果,并将其存储在变量obj中,请使用以下命令访问属性:

var obj = JSON.parse(  response  ); //response is the string containing JSON
var photos = obj.Photos;    //Array of photo objects
var comments = obj.Comments;//Array of comment objects

我不认为有一个正确的答案,但这应该可以:

{
    "Photos": [{
        "Filename": "5962230079803.jpg",
        "PhotoID": "39"}], 
    "Comments": [{
        "UserID": "100000660901552",
        "Comment": "Hello!"}]
}

注意加了逗号。所以你的结构就差不多了。现在,假设您将其解析为变量response,您可以像这样访问单独的部分:

response['Photos'];
response['Comments'];