1

これはおそらく簡単ですが、このJSONオブジェクトの値にアクセスする必要があります。どうすればいいのかわかりません。オブジェクトは次のとおりです。

{
    "COLUMNS": ["NAME"],
    "DATA":  [["YOUNG, MARIA              "]]
}

「obj.NAME」でうまくいくと思っていたのですが、未定義と書いてあります。これが私のAJAX呼び出しです:

$.ajax({
                        //this is the php file that processes the data and send mail
                        url: 'components/Person.cfc',

                        //GET method is used
                        type: "POST",

                        //pass the data        
                        data: {
                            method: "getGroup",
                            uid: $('#cardText').val()
                            },

                        success: function(response) {

                            var obj = $.trim(response);
                            var obj = jQuery.parseJSON(obj);
                            $('#form_result').html(obj.NAME);

                        },
4

2 に答える 2

2

コードで、次の例は、この特定のJSONオブジェクトのプロパティにアクセスする方法を示しています。

alert( obj.COLUMNS[0] );  // alerts the string "NAME".

alert( obj.DATA[0][0] );   // alerts "YOUNG, MARIA              "

これが出力である理由を理解するには、JSONを構成する表記法を理解して読むことを学ぶことが重要です。

{} = object

[] = array

あなたのJSON:

{
    "COLUMNS": ["NAME"],
    "DATA":  [["YOUNG, MARIA              "]]
}

最も外側の部分は中括弧で表されているため、JSONは配列ではなくオブジェクトを表していることがわかります。オブジェクトには2つのプロパティがあり、それらに割り当てられた値は角かっこで囲まれているため、どちらも配列です。

2番目のプロパティDATAは、実際には、文字列を含むサイズ1の別の配列を含むサイズ1の配列です。

最後に、コードで、プロパティではなく値であるNAMEにアクセスしようとしています。JSON JSONについて理解する最後のポイントは、すべてのオブジェクトがキーと値のペアで表されるということです。キーを使用して値にアクセスします。obj.COLUMNSは最初の配列を取得し、obj.DATAは2番目の配列を取得します。

NAMEはプロパティではありません。代わりに、配列に割り当てられた値です。

JSONにアクセスする方法を学ぶために、さまざまなオブジェクトのプロパティへのアクセスを練習してください。さらに、既存のオブジェクトをJSONに変換してコンソールに表示し、JSONでどのように構造化されているかを確認できます。

var your_object = new Object();
your_object.name = "Bob";
your_object.skills = ["programmer","debugger","writer"];

console.info( JSON.stringify( your_object ) );

// this would convert the object to JSON. Going the other direction could help 
  // you further understand the concepts under the hood. Here is the output:
{ "name" : "Bob", "skills" : [ "programmer" , "debugger" , "writer" ] }
于 2012-05-19T02:31:03.677 に答える
0

オブジェクトをparseJSONで実行すると、2つの子を持つオブジェクトが作成されます。

myObj = parseJSON (yourJSONStringAbove);
myObj.COLUMNS ; // this is an array containing one item whose value is "name"
myObj.DATA; // this is an array of arrays, it contains one array which has one value

so, myObj.data[0][0] ; // this is "YOUNG, MARIA          "
于 2012-05-19T02:32:24.143 に答える