Jquery中的JSON解析
我有一个类似以下内容的JSON数据:Jquery中的JSON解析,jquery,ajax,json,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页面上尝试处理数据并使用它 下面是我用来解析响应的每个节点的函数
{"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)
向我发出警报,其中包含product节点下的整个JSON
警报(data.product[index].productTitle)代码>--此警报显示为“未定义”
我需要帮助来解析JSON并打印每个“productTitle”
提前谢谢
JSON.parse(data)
我们应该做到这一点
编辑:我发现字符串中甚至没有JSON。使用Musa的答案将其转换为JSON,然后按照我最初的建议使用JSON.parse(data)
。试试这个
var jdata = JSON.parse(data);
$.each(jdata.product, function(index, productdetail) {
alert(productdetail.productTitle);
});
data.product
是字符串数组,不是对象或JSON,您必须解析字符串才能获得数据
您可以使用正则表达式将字符串转换为JSON,然后使用JSON.parse或$.parseJSON将其转换为js对象,但这有点混乱,请参阅
您给出的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"},
....
]
}
所以
数据。产品[0]。产品标题为“ABCD”添加
contentType : "application/json"
发送到您的请求(在响应头中,这应该由您的Web服务器自动完成)。jQuery然后自动将Repsonse解释为JSON对象并对其进行解析。如何实现?我是jquery的新手。很抱歉使用这些术语。@sabyasachi您能在data.product中将数据的格式更改为JSON吗?我很难更改JSON附带的格式。我们不能使用这种格式并解析它吗?@sabyasachi您可以使用regex将字符串转换为JSON,然后使用JSON.parse或$.parseJSON将其转换为js对象,但它有点混乱,请参见response.setContentType(“application/JSON;charset=utf-8”);您的Web服务器是否回答“contentType:”应用程序/json“”?
contentType : "application/json"