/ / JSON Parsing en Jquery - jquery, ajax, json

JSON Parsing en Jquery - jquery, ajax, json

Tengo un dato JSON que es algo como lo siguiente:

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

En mi página JSP estoy tratando de procesar los datos y usarlos.

A continuación se muestra la función que estoy utilizando para analizar cada nodo de la respuesta.

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


});

},

aquí alert("data.product" + data.product); me da la alerta con todo el JSON que está debajo del nodo del producto.

alert(data.product[index].productTitle); - Esta alerta se muestra como "indefinida".

Necesito ayuda para analizar el JSON e imprimir cada uno de los "Titulo del producto"

Gracias por adelantado .

Respuestas

2 para la respuesta № 1

data.product es una matriz de cadenas, no objetos o JSON, tendrá que analizar las cadenas para obtener los datos.

puede usar expresiones regulares para transformar la cadena a JSON y luego a JSON.parse o $ .parseJSON para convertirla a objetos js pero es un poco desordenado, vea 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 para la respuesta № 2

El json que das es

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

Sin embargo tienes que cambiar arriba en

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

Asi que
data.product[0].productTitle es "ABCD"


0 para la respuesta № 3

prueba esto

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

0 para la respuesta № 4

Añadir

contentType : "application/json"

a su solicitud (y en el encabezado de Respuesta, que debe ser realizado automáticamente por su servidor web). jQuery luego interpreta automáticamente la Repsonse como objeto JSON y la analiza.


0 para la respuesta № 5
JSON.parse(data)

debería hacer el truco.

Edit: veo que ni siquiera es JSON dentro de la cadena. Use la respuesta de Musa para transformarla en JSON y luego use JSON.parse(data) Como sugerí inicialmente.