从json中获取值"未定义的“;我做错了什么

Get value from json "undefined" what I have wrong?

本文关键字:什么 错了 未定义 获取 quot json      更新时间:2023-09-26

我有这个字符串:

[
 {"id":"001",
  "name":"Charlie"},
  {"id":"002",
  "name":"Ellie"},
]

他们,我把这个字符串保存在一个变量中,然后解析它:

function parseJSON(string){
   var mylovelyJSON = JSON.stringify(string); 
   alert(mylovelyJSON[id]); 
} 

当我发出警报时,我得到了和"undefined",我还尝试了使用"mylovelyJSON.id",并且我得到了相同的结果。

不可能是Json吗?我从php数组中得到这个字符串。

这里有很多错误

您的JSON无效

就在阵列结束之前,您有一个额外的,,需要删除

你需要分析

JSON.stringify将JavaScript数据结构转换为JSON字符串。

您需要走另一条路并使用JSON.parse

方括号表示法采用字符串

mylovelyJSON[id]获取id的值(该值未声明,因此在本例中会引发引用错误),并获取名称与该值相同的属性。

您需要mylovelyJSON["id"]mylovelyJSON.id

你有一个数组

JSON由一组对象组成,而不是由单个对象组成。

你需要先从数组中取出一个对象,然后才能访问它的属性

mylovelyJSON[0]["id"]


var json_text = '[{"id":"001","name":"Charlie"},{"id":"002","name":"Ellie"}]';
parseJSON(json_text);
function parseJSON(string){
   var result_of_parsing_json = JSON.parse(string);
   document.body.appendChild(
     document.createTextNode(result_of_parsing_json[0]["id"])
   );
} 

这里有两件事是错误的

  1. 数组以逗号结尾,这不是有效的json
  2. 您正在将字符串转换为javascript,而stringify的作用与此相反

所以像这样的东西可能会起作用:

var id = 0;
function parseJSON(string){
    var mylovelyJSON = JSON.parse(string); 
    alert(mylovelyJSON[id]); 
}

注意我假设id是一个全局变量。。。