2011-02-04 51 views
1

我需要从服务器端生成json,我知道该怎么做。然而,我不知道如何格式化这个json数据,所以它可以很容易地在jQuery中使用?3个输入字段的格式JSON

这里是我现在的脚本。格式化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

如果添加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数组,你必须遍历它。


Btw。由于ID是唯一的,因此不需要在选择器中预先添加标签名称。

+0

并与ID的它实际上是坏添加标签名,有明确的内置函数在DOM中,通过ID获取元素是最快的方式,jQuery可以使用它们与纯ID选择器:) – 2011-02-04 13:16:18

1

只需指定dataType为“json”即可设置!

$.ajax({ 
    url: 'generate_json.aspx', 
    type: 'POST', 
    data: { intPageID:1 }, 
    dataType: "json", 
    success: function(result){$("#heading").val(result.heading)} 
    }); 
+0

这不会回答他的问题, Ÿ如何解析它在客户端上;) – 2011-02-04 13:17:19

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