0

我对整个 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

4 回答 4

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 }
    ]
]
}
于 2012-02-07T15:59:14.310 回答
1

如果您正在通过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.

于 2012-02-07T15:57:42.360 回答
0

首先:假设您将 JSON 对象分配给变量“myobject”。然后你可以做

var myfields = myobject.result[0][0].fields;
于 2012-02-07T16:02:03.100 回答
0

希望这个代码示例能帮助你理解 jQuery/JSON 的东西。

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

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

于 2012-02-07T16:34:20.870 回答