我以这种方式发送 GET
请求:
$.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为了验证,它会告诉你所有的问题。
关于java - 无法为客户端形成正确的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20607878/