如何在javaScript中将字符串转换为对象

时间:2019-07-10 13:04:48

标签: javascript json parsing

我使用了Object.parses()但出现错误

var obj = '
   "users": [
 { "name":"John", "age":30, "city":"New York"},
 { "name":"Mike", "age":25, "city":"new jersey"},   
]'

2 个答案:

答案 0 :(得分:2)

尽管您没有明确提到JSON,但此数据看起来像JSON。您可以使用JSON.parse()将JSON字符串转换为JavaScript变量

但是,由于一些语法错误,您发布的字符串实际上不是有效的JSON。您可以修复这些问题以获得(我认为是)预期的对象结构:

1)删除new jersey之前的多余双引号

2)在两端添加大括号以使其成为有效对象。

3)在最后一个数组项之后删除多余的逗号(尽管实际上很多解析器都可以接受)

所以你最终会得到

{ 
  "users": [
    { "name":"John", "age":30, "city":"New York"},
    { "name":"Mike", "age":25, "city":"new jersey"}
  ]
}

这很容易解析:

var obj = '{ "users": [{    "name": "John",    "age": 30,    "city": "New York"  },  {    "name": "Mike",    "age": 25,    "city": "new jersey"  }]}';

var data = JSON.parse(obj);

console.log(data);
console.log("----------");

//example of gettng a specific property, now it's a JS variable
console.log(data.users[0].name);

答案 1 :(得分:1)

首先,更正您的字符串。它看起来应该像插入的片段中一样。 其次,使用JSON.parse()

var t = '{"users": [{ "name":"John", "age":30, "city":"New York"},{ "name":"Mike", "age":25, "city":"new jersey"}]}'; 
    
     
     var obj = JSON.parse(t);
     console.log(obj["users"][0].name);
     console.log(obj["users"][0].age);
     console.log(obj["users"][0].city);