格式化3个输入字段的JSON

时间:2011-02-04 12:01:39

标签: javascript json jquery

我需要从服务器端生成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');
        }
    });
});

3 个答案:

答案 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);
}