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

时间:2012-02-07 15:54:31

标签: jquery json datasnap

我对这整个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 getContent(order) {
       $.getJSON("query.json",
    function(data) {
        $.each(data.result, function(i, item) {

        var grid = '<table border="1">';

        for (var i=0; i < item.length; i++){
            CAMPO = item[i];

            ...

4 个答案:

答案 0 :(得分:1)

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

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

data是指向该对象的变量,该变量具有result属性,该属性是一个只有一个条目的数组(因此,条目[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

答案 1 :(得分:1)

如果您有一串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 }
    ]
]
}

答案 2 :(得分:0)

首先:我们假设您已将JSON对象分配给变量“myobject”。然后就可以了

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

答案 3 :(得分:0)

希望这段代码示例能帮助您理解jQuery / JSON的内容。

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

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