可以't为客户端形成正确的JSON响应

Can't form correct JSON response for the client

本文关键字:响应 JSON 客户端 可以      更新时间:2023-09-26

我以这种方式发送GET请求int:

$.ajax({
    url: myUrl,
    type:"GET",
    dataType: "json",
    success: callback        
});

在服务器端,我形成以下json字符串并将其发送到客户端:

"{'composers':
    {'composer':
        {
        'id':2,
        'firstName': 'Arcangelo',
        'lastName': 'Corelli'
        }
    },
    {'composer':
        {
        'id':7,
        'firstName': 'Antonio',
        'lastName': 'Vivaldi'
        }
    }
}"

客户端什么也得不到但是如果我使用XML格式作为响应,它可以正常工作我正在设置这样的内容类型:

response.setContentType("application/json");
JSON需要使composers属性成为数组:
{
    "composers": [
        {
            "composer": {
                "id": 2,
                "firstName": "Arcangelo",
                "lastName": "Corelli"
            }
        },
        {
            "composer": {
                "id": 7,
                "firstName": "Antonio",
                "lastName": "Vivaldi"
            }
        }
    ]
}

我还建议使用一个更精简的版本,删除composer属性,因为分配给数组的属性composers包含composer对象是非常直观的。

{
    "composers": [
        {
                "id": 2,
                "firstName": "Arcangelo",
                "lastName": "Corelli"
        },
        {
                "id": 7,
                "firstName": "Antonio",
                "lastName": "Vivaldi"
        }
    ]
}

此外,JSON使用双引号而不是单引号,您需要根据需要进行替换。

当您在将来遇到这些类型的问题时,只需将JSON交给JSON-lint进行验证,它就会告诉您所有的问题。

我认为您的JSON格式不正确。

composers元素看起来像是一个数组,JSON应该更像:

{"composers":
    [
        {
        "id":2,
        "firstName": "Arcangelo",
        "lastName": "Corelli"
        },
        {
         "id":7,
         "firstName': "Antonio",
         "lastName': "Vivaldi"
        }
    ]
}

您有JSON错误。修复它。

"{'composers':[
    {'composer':
        {
        'id':2,
        'firstName': 'Arcangelo',
        'lastName': 'Corelli'
        }
    },
    {'composer':
        {
        'id':7,
        'firstName': 'Antonio',
        'lastName': 'Vivaldi'
        }
    }
  ]
}"

试试这个:

{
    "composers": [
        {
            "composer": {
                "id": 2,
                "firstName": "Arcangelo",
                "lastName": "Corelli"
            }
        },
        {
            "composer": {
                "id": 7,
                "firstName": "Antonio",
                "lastName": "Vivaldi"
            }
        }
    ]
}

and check your json is valid or not using jsonlint