如何使用JQuery读取JSON结果中的Fields:{}内容?

我对这整个JSON和JQuery很新鲜,我正在尝试阅读来自Delphi datasnap的JSON结构,例如:

{"result":[[{"type":"VOMesas.TMesas","id":1,"fields":{ "FUsers":1,"FEnclosing":0,"FClientName":"","FCode":100,"FStatus":1,"FTotalValue":128.25}}]]} 

我如何用JQuery阅读它,更具体地说是Fields:{…}内容?

编辑:

这是我试图做的function

  function getContent(order) { $.getJSON("query.json", function(data) { $.each(data.result, function(i, item) { var grid = ''; for (var i=0; i < item.length; i++){ CAMPO = item[i]; ...

如果你是通过jQuery.ajax或类似的方式加载数据并且它以正确的MIME类型返回(或者你告诉jQuery.ajax你得到的是JSON),那么你在success回调中收到的将是反序列化的对象(不再是JSON,而是JSON描述的对象)。 既然如此,您只需访问对象的属性,例如:

 $.ajax({ // ... success: function(data) { var fields = data.result[0][0].fields; } }); 

data是指向对象的变量,它有一个result属性,它只是一个只有一个条目的数组(因此,entry [0] ),它本身就是另一个只有一个条目的数组(所以,再次输入[0] ),是一个具有名为fields的属性的对象。 形象地:

 { // <== data "result": [ // <== data.result [ // <== data.result[0] { // <== data.result[0][0] "type": "VOMesas.TMesas", "id": 1, "fields": { // <== data.result[0][0].fields "FUsers": 1, "FEnclosing": 0, "FClientName": "", "FCode": 100, "FStatus": 1, "FTotalValue": 128.25 } } ] ] } 

如果您正在以其他方式检索数据并且它仍然是字符串,则可以使用jQuery.parseJSON对其进行反序列化:

 var data = $.parseJSON(str); 

...然后执行上述操作以访问fields

如果您有一个JSON字符串,只需使用JSON.parse将其转换为Javascript对象即可。

 var datasnap = '{"result":[[{"type":"VOMesas.TMesas","id":1,"fields": FUsers":1,"FEnclosing:0,"FClientName":"","FCode":100,"FStatus":1,"FTotalValue":128.25}}]]}'; var data = JSON.parse(datasnap); var fields = data['result'][0]['fields']; 

但是,请注意,您粘贴到问题中的JSON无效:

 { "result": [ [ { "type": "VOMesas.TMesas", "id": 1, "fields": FUsers":1,"FEnclosing: 0, //unbalanced " "FClientName": "", "FCode": 100, "FStatus": 1, "FTotalValue": 128.25 } } //unbalanced } ] ] } 

第一:假设您将JSON对象分配给变量“myobject”。 那你可以做

 var myfields = myobject.result[0][0].fields; 

希望这个代码示例能帮助您理解jQuery / JSON的事情。

我已将示例JSON对象作为数组。 然后通过读取JSON的键/值对来填充小HTML。

工作实例: http : //jsfiddle.net/ylokesh/WC84k/

Interesting Posts