我需要从服务器端生成json,我知道该怎么做。但是,我不知道如何格式化这个json数据,以便它可以很容易地在jQuery中使用?
这是我目前的脚本。格式化json数据的最佳方法是什么,所以我可以填写3个输入字段?
$('input#btnGet').click(function() {
$.ajax({
url: 'generate_json.aspx',
type: 'POST',
data: { intPageID:1 },
success: function(results) {
$('input#id').val('id goes here');
$('input#heading').val('heading goes here');
$('input#content').val('content goes here');
}
});
});
答案 0 :(得分:3)
如果您在选项中添加dataType: 'json'
,那么jQuery会直接将JSON解码为JavaScript对象:
“json”:将响应评估为JSON并返回JavaScript对象。在jQuery 1.4中,JSON数据以严格的方式解析;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。 (有关正确的JSON格式的更多信息,请参阅json.org。)
假设您收到/生成的JSON是
'{"id": 6, "heading": "heading", "content": "content"}'
您的代码如下所示:
$.ajax({
url: 'generate_json.aspx',
type: 'POST',
data: { intPageID:1 },
dataType: 'json',
success: function(results) {
$('#id').val(results.id);
$('#heading').val(results.heading);
$('#content').val(results.content);
}
});
如果您的JSON字符串代表一个数组,那么当然results
将是一个JavaScript数组,您必须循环它。
顺便说一下。由于ID是唯一的,因此无需在选择器中添加标记名称。
答案 1 :(得分:1)
只需将dataType指定为“json”即可设置!
$.ajax({
url: 'generate_json.aspx',
type: 'POST',
data: { intPageID:1 },
dataType: "json",
success: function(result){$("#heading").val(result.heading)}
});
答案 2 :(得分:1)
如果您的服务器返回此信息:
{
"id": "1",
"heading": "yadayada"
"content": "foobar"
}
您可以像以下一样使用它:
success: function(results) {
$('input#id').val(results.id);
$('input#heading').val(results.heading);
$('input#content').val(results.content);
}