У мене є дані 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 для відповіді № 1data.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)
як я запропонував спочатку.