Как читать содержимое Fields: {} внутри результата JSON, используя JQuery? - PullRequest
0 голосов
/ 07 февраля 2012

Я новичок во всем этом JSON и JQuery, и я пытаюсь прочитать структуру JSON из Delphi datasnap, например:

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

Как я могу прочитать это с помощью JQuery, точнее, полей: {...} content?

РЕДАКТИРОВАТЬ:

вот функция, которую я пытаюсь сделать

 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 ]

1 голос
/ 07 февраля 2012

Если у вас есть строка 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 }
    ]
]
}
1 голос
/ 07 февраля 2012

Если вы загружаете данные через jQuery.ajax или подобное, и они возвращаются с правильным типом MIME (или вы говорите jQuery.ajax, что вы получаете обратно JSON), то то, что вы получаете в success callback будет десериализованным объектом (больше не 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.

0 голосов
/ 07 февраля 2012

Надеюсь, этот пример кода поможет вам понять, что такое jQuery / JSON.

Я взял образец объекта JSON в качестве массива. Затем заполняем небольшой HTML, читая пару ключ / значение в формате JSON.

рабочий пример: http://jsfiddle.net/ylokesh/WC84k/

0 голосов
/ 07 февраля 2012

Во-первых: давайте предположим, что вы присвоили свой объект JSON переменной myobject.Тогда вы можете сделать

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