ajax 调用后未定义的 JSON 数据

JSON data undefined after ajax calling

提问人:soumitra 提问时间:6/14/2023 最后编辑:Jason Allersoumitra 更新时间:6/14/2023 访问量:34

问:

在 MainData 中显示名称时面临问题,而 MainData 显示完美 但是maindata->name:未定义。maindata 是 MySQL 中的长文本列

//this is the jQuery code section below
//original data stored in MySQL database in column MAINDATA
{
  "name":"SOUMITRA AND & SARKAR",
  "address":"24/1 Sahid Ananta Dutta Sarani, P.O. Rajbari,Kolkata 700 081",
  "stateid":["19","20","21"],
  "ref":{"noref":01,"myref":"02"}
 }

//retuning after AJAX call in jQuery script the $.parseJSON value is below

[
  {
    "maindata":"{
        "name":"SOUMITRA AND & SARKAR",
        "address":"24/1 Sahid Ananta Dutta Sarani, P.O.Rajbari, Kolkata 700 081",
        "stateid":["19","20","21"],
        "ref":{"noref":01,"myref":"02"}
     }"
   }
]


for (var i=0;i<pass_data.length;i++)
{
    //maindata is showing perfectly
    alert(pass_data[i].maindata);
}
for (var i=0;i<pass_data.length;i++)
{
    alert(pass_data[i].maindata["address"]; // undefined
}

我已经在我的问题中展示了它,到目前为止,我发现解析数据做错了什么。在 MainData 之后有 { 第二个括号,位于引号内。

javascript php jquery mysql json

评论

2赞 CBroe 6/14/2023
它用引号括起来,因为它是一个字符串值。乍一看,这又是 JSON 编码的数据 - 但该值使它无效的 JSON。因此,如果您希望能够将其解码 JSON,则需要先修复该错误。"noref":01
0赞 soumitra 6/14/2023
谢谢。我已经改变了它。

答:

0赞 Geshode 6/14/2023 #1

在返回值中,maindata 是一个字符串,因此您无法访问其中的属性。您必须再次分析字符串才能使属性可访问。

例如:

const ajaxResult = [
  {
    "maindata":"{
        "name":"SOUMITRA AND & SARKAR",
        "address":"24/1 Sahid Ananta Dutta Sarani, P.O.Rajbari, Kolkata 700 081",
        "stateid":["19","20","21"],
        "ref":{"noref":01,"myref":"02"}
     }"
   }
]

ajaxResult[0].maindata = JSON.parse(ajaxResult[0].maindata)

console.log(ajaxResult[0].maindata.address) // "24/1 Sahid Ananta Dutta Sarani, P.O.Rajbari, Kolkata 700 081"

评论

0赞 soumitra 6/14/2023
Geshode 谢谢