-1

嗨,我需要将字符串转换为 JSON 对象,以便我可以从中获取值,下面是我的字符串

{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"}

我尝试了下面的代码

var data='{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"}'
var output=JSON.parse(data);
var user=output["USER_NAME"];
console.log(user)

但是我收到如下错误

Unexpected token u

我被困在这里任何帮助都会有很大帮助

4

3 回答 3

2

该错误Unexpected token u不会出现在您作为示例数据发布的内容中,但这您在使用 JSON 时看到的常见错误,因为人们经常创建导致该错误的不正确(无效)JSON。

JSON是 JavaScript 对象初始值设定项语法的一个子集(松散地称为“JavaScript 对象文字”),但作为一个子集,它的规则不同于 JavaScript(更严格)。

您的实际导致问题的 JSON 字符串可能如下所示:

{user_name: "Desc", password: "hiiiiiii"}

...这是无效的,因为键 (user_namepassword) 在 JSON 中必须用双引号括起来。这是一个常见错误,因为它们不必在 JavaScript 中;但 JSON 要求他们这样做。

因此,它的有效版本看起来更像您在问题中发布的内容:

{"user_name": "Desc", "password": "hiiiiiii"}

于 2013-09-19T13:08:28.070 回答
0

这就是你想要的?

console.log(JSON.parse('{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"}'));
//Object {USER_NAME: "Desc", PASSWORD: "hiiiiiii"} 
于 2013-09-19T13:06:26.123 回答
-5

你好,请试试这个,我不确定它是否会起作用

var str = '{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"} }';
var json = JSON.stringify(eval("(" + str + ")"));
于 2013-09-19T13:02:22.303 回答