在javascript中将JSON字符串转换为对象
嗨,我需要将字符串转换为JSON对象,以便从中获取值 下面是我的绳子 {“用户名”:“描述”,“密码”:“HIIIII”} 我尝试了下面的代码在javascript中将JSON字符串转换为对象,javascript,json,string,parsing,Javascript,Json,String,Parsing,嗨,我需要将字符串转换为JSON对象,以便从中获取值 下面是我的绳子 {“用户名”:“描述”,“密码”:“HIIIII”} 我尝试了下面的代码 var data='{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"}' var output=JSON.parse(data); var user=output["USER_NAME"]; console.log(user) 但我得到的错误如下 Unexpected token u 我被困在这里了。任何帮助
var data='{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"}'
var output=JSON.parse(data);
var user=output["USER_NAME"];
console.log(user)
但我得到的错误如下
Unexpected token u
我被困在这里了。任何帮助都会很有帮助的。你好,请试试这个。我不确定它是否有用
var str = '{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"} }';
var json = JSON.stringify(eval("(" + str + ")"));
这就是你想要的
console.log(JSON.parse('{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"}'));
//Object {USER_NAME: "Desc", PASSWORD: "hiiiiiii"}
错误
意外标记u
不会出现在作为示例数据发布的内容中,但这是使用JSON时常见的错误,因为人们经常创建不正确(无效)的JSON,从而导致该错误
是JavaScript对象初始值设定项语法的子集(松散地称为“JavaScript对象文本”),但作为子集,其规则不同于JavaScript(更严格)
导致问题的实际JSON字符串可能如下所示:
{用户名:“Desc”,密码:“hiiiii”}
…这是无效的,因为密钥(用户名
和密码
)必须在JSON中使用双引号。这是一个常见错误,因为它们不必使用JavaScript;但JSON要求他们这样做
因此,该问题的有效版本看起来更像您在问题中发布的内容:
{“用户名”:“Desc”,“密码”:“hiiii”}
JSON是一种文本表示法。您要做的是将JSON字符串转换为JavaScript对象。您确定错误来自此代码吗?您描述的错误不会发生在您的代码中。我的猜测是,您的实际数据中有一个键不在引号中,例如,{user:“foo”}
,这是无效的JSON(user
必须在引号中,特别是双引号)。请检查上面的这些值是否发生这种情况。可能您的字符串包含一些JSON不友好字符或一些JSON语法错误计算机生成的JSON(使用JSON.parse()
)如下所示:{“用户名”:“Desc”,“密码”:“hiiiii”}
@2astalavista:JSON.parse
不生成字符串,而是使用字符串。我不明白你想说什么。JSON.stringifyinstead@2astalavista当前位置我还是不明白你在说什么。是,JSON.stringify
生成有效的JSON。OP试图解析的内容都不是有效的JSON。