我以这种方式发送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");
答案 0 :(得分:2)
我相信你的JSON格式不正确。
composers
元素看起来像一个数组,JSON应该更像:
{"composers":
[
{
"id":2,
"firstName": "Arcangelo",
"lastName": "Corelli"
},
{
"id":7,
"firstName': "Antonio",
"lastName': "Vivaldi"
}
]
}
答案 1 :(得分:2)
JSON需要将composers
属性设为数组:
{
"composers": [
{
"composer": {
"id": 2,
"firstName": "Arcangelo",
"lastName": "Corelli"
}
},
{
"composer": {
"id": 7,
"firstName": "Antonio",
"lastName": "Vivaldi"
}
}
]
}
我还建议使用更轻薄的版本来删除composer属性,因为分配数组的属性composers
非常直观,包含作曲家对象。
{
"composers": [
{
"id": 2,
"firstName": "Arcangelo",
"lastName": "Corelli"
},
{
"id": 7,
"firstName": "Antonio",
"lastName": "Vivaldi"
}
]
}
JSON也使用双引号而不是单引号,您需要根据需要进行替换。
如果您将来遇到这些类型的问题,只需将您的JSON转到json lint进行验证,它就会告诉您所有问题。
答案 2 :(得分:2)
您有JSON错误。修理它。
"{'composers':[
{'composer':
{
'id':2,
'firstName': 'Arcangelo',
'lastName': 'Corelli'
}
},
{'composer':
{
'id':7,
'firstName': 'Antonio',
'lastName': 'Vivaldi'
}
}
]
}"
答案 3 :(得分:0)
试试这个:
{
"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