JSON Розбір в Jquery - jquery, ajax, json

У мене є дані 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); - Це сповіщення відображається як "undefined".

Мені потрібна допомога, щоб розібрати його JSON і роздрукувати кожну з них "productTitle"

Заздалегідь спасибі .

Відповіді:

2 для відповіді № 1

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);
});

0 для відповіді № 2

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"


0 для відповіді № 3

спробуйте це

   var jdata = JSON.parse(data);
$.each(jdata.product, function(index, productdetail) {
alert(productdetail.productTitle);
});

0 для відповіді № 4

Додати

contentType : "application/json"

Вам запит (і в заголовку Response, який повинен бути зроблений автоматично вашим веб-сервером). Після цього jQuery автоматично інтерпретує Repsonse як об'єкт JSON і аналізує його.


0 для відповіді № 5
JSON.parse(data)

повинен зробити трюк.

Змінити: Я бачу, що це не JSON в рядку. Використовуйте відповідь Musa, щоб перетворити його на JSON, а потім використовувати JSON.parse(data) як я запропонував спочатку.