首页 > 解决方案 > 如何在javascript中将字符串转换为对象

问题描述

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

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

标签: javascriptjsonparsing

解决方案


尽管您没有明确提到 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);


推荐阅读