2

私のコントローラーには、jsonArrayの文字列表現を次のように返すメソッドがあります。

jsonArray.toString()

次に、ajaxメソッドを示します

function loadPropertyFile(url) {
$.ajax({
    type: "GET",
    url: url, 
    dataType: "text",
    success: function(response){
        var obj = jQuery.parseJSON(response);
        alert(obj);
    }
});

}

ここで、解析後の変数objは次のようになります。

"[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"},{"displaytag.tracking.itemName":"Item Name"},{"displaytag.tracking.itemType":"Type"}]"

今、私はjsのキーから値にアクセスしたい

すなわち。キー「displaytag.tracking.id」の値にアクセスしたい

問題は、console.log(obj [0] ["portal.home"]);を実行しているときです。それは私にエラーTypeErrorを与えています:obj[0]は未定義です

何をすればよいでしょうか ?

4

4 に答える 4

6

まず、 JSON文字列をJavaScriptオブジェクトに解析してから、必要なプロパティにアクセスする必要があります。

var obj = JSON.parse(json);
console.log(obj[0]["portal.home"]);

ネイティブJSONをサポートしていない古いブラウザーでは、Crockfordのjson2.jsのようなものを使用する必要があります。JSONでeval()を使用しないでください。かなり悪い結果になる可能性があります。

于 2013-01-25T09:41:33.813 に答える
1

$.parseJSON文字列をJavascriptオブジェクトに変換するには(または最新のブラウザではJSON.parse)を使用します。

var json = '[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"},{"displaytag.tracking.itemName":"Item Name"},{"displaytag.tracking.itemType":"Type"}]';
var object = $.parseJSON(json);

あなたの場合、JSON文字列は配列を作成するので、正しいインデックスでオブジェクトを取得する必要があります。

var portalHomeValue = object[0]["portal.home"];
于 2013-01-25T09:40:13.507 に答える
0

JavaScriptソースに直接JSONがある場合(私は想定していませんが、他の人のためにこれを追加しています)、引用符を削除するだけで、javascriptはそれに基づいてオブジェクトを作成します。

var obj = [{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"},{"displaytag.tracking.itemName":"Item Name"},{"displaytag.tracking.itemType":"Type"}];
console.log(obj[0]["portal.home"]);
于 2013-01-25T09:43:47.553 に答える
0

以下から直接アクセスできます

var data = JSON.parse('[{"Item_Number":"M71118LHB","Description":"MENS ONESIE"}]');
var desc = data[0].Description;
console.log(desc);
于 2018-04-03T13:52:53.980 に答える