0

私はこのJSONとJQuery全体に不慣れで、Delphiデータスナップからの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

jQuery.ajaxまたは同様の方法でデータを読み込んでいて、正しいMIMEタイプで返される場合(または返さjQuery.ajaxれるものがJSONであることがわかる場合)、コールバックで受け取るものsuccessは逆シリアル化されたオブジェクトになります(JSONではなくなります) 。 、ただし、JSONが記述したオブジェクト)。その場合は、オブジェクトのプロパティにアクセスするだけです。例:

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

dataオブジェクトを指す変数であり、result1つのエントリ(つまり、entry)のみを持つ配列であるプロパティを持ち、[0]それ自体は、1つのエントリ(つまり、再びエントリ)を持つ別の配列であり、。[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 に答える
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 に答える
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 に答える