0

次のようなJSONデータがあります::

{"product":["{productTitle=ABCD , productImage=/abcd.jpg, productPath=CDEF.html, productPrice=$299}","{productTitle=EFGH, productImage=xxxx.jpg, productPath=ggfft.html, productPrice=$299}"]}

私のJSPページは、データを処理して使用しようとしています。

以下は、応答の各ノードを解析するために使用している関数です。

success : function(data) {
                            alert("successs");
                            alert('data.product' + data.product);
                            $.each(data.product, function(index) {
                                     alert(data.product[index].productTitle);


                                 });

                         },

ここalert('data.product' + data.product); に、製品ノードの下にあるJSON全体のアラートが表示されます。

alert(data.product[index].productTitle); -このアラートは「未定義」として表示されています。

JSONを解析し、各「productTitle」を出力するためのヘルプが必要です

前もって感謝します 。

4

5 に答える 5

2

data.productはオブジェクトやJSONではなく文字列の配列であるため、データを取得するには文字列を解析する必要があります。

正規表現を使用して文字列をJSONに変換し、次にJSON.parseまたは$ .parseJSONを使用してjsオブジェクトに変換できますが、少し面倒です。http://jsfiddle.net/nQE6Jを参照してください

$.each(data.product, function(index) {
    alert(JSON.parse(data.product[index].replace(/=/g, ':').replace(/([a-z\.A-Z\$\/\d]+)/g, '"$1"')).productTitle);
});
于 2012-08-17T07:06:11.320 に答える
0

追加

contentType : "application/json"

あなたにリクエストしてください(そしてResponseヘッダーで、それはあなたのウェブサーバーによって自動的に行われるべきです)。次に、jQueryはRepsonseをJSONオブジェクトとして自動的に解釈し、解析します。

于 2012-08-17T07:20:18.283 に答える
0
JSON.parse(data) 

トリックを行う必要があります。

編集:文字列内のJSONでさえないことがわかります。Musaの回答を使用してJSONに変換し、JSON.parse(data)最初に提案したとおりに使用します。

于 2012-08-17T07:03:02.607 に答える
0

これを試して

   var jdata = JSON.parse(data);
   $.each(jdata.product, function(index, productdetail) {
         alert(productdetail.productTitle);
   });
于 2012-08-17T07:05:41.950 に答える
0

あなたが与えるjsonは

{
"product":[
"{productTitle=ABCD , productImage=/abcd.jpg, productPath=CDEF.html, productPrice=$299}",
"{productTitle=EFGH, productImage=xxxx.jpg, productPath=ggfft.html, productPrice=$299}"
]
}

ただし、上記を次のように変更する必要があります

{
"product":[
    {"productTitle":"ABCD"  , 
     "productImage":"/abcd.jpg", 
     "productPath":"CDEF.html", "productPrice":"$299"},
    ....
]
}


data.product[0].productTitle「ABCD」もそうです

于 2012-08-17T07:09:00.453 に答える