【问题标题】:converting a JSON string to object in javascript [closed]在javascript中将JSON字符串转换为对象[关闭]
【发布时间】:2013-09-19 12:58:44
【问题描述】:

您好,我需要将字符串转换为 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

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

【问题讨论】:

  • JSON 是一种 文本 表示法。您要做的是将 JSON 字符串转换为 JavaScript 对象。
  • 在这里工作正常:jsbin.com/ejUZaZ/1/edit
  • 对我来说很好。您确定错误来自此代码吗?
  • 您所描述的错误不会发生在您那里。我的猜测是您的实际数据有一个不在引号中的键,例如{user: "foo"},这是无效的 JSON(user 必须用引号引起来——特别是双引号)。
  • 检查上面这些值是否发生。也许您的字符串包含一些 JSON 非友好字符或一些 JSON 语法错误

标签: javascript json string parsing


【解决方案1】:

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"}

【讨论】:

  • 计算机生成的 JSON(使用 JSON.parse())如下所示:{"USER_NAME":"Desc","PASSWORD":"hiiiiiii"}
  • @2astalavista: JSON.parse 不产生字符串,它消耗它们。我没有看到您在上面要说的内容。
  • JSON.stringify 代替
  • @2astalavista:我还是没看懂你在说什么。是的,JSON.stringify 生成有效的 JSON。无论 OP 试图解析 不是 有效的 JSON。
【解决方案2】:

这就是你想要的?

console.log(JSON.parse('{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"}'));
//Object {USER_NAME: "Desc", PASSWORD: "hiiiiiii"} 

【讨论】:

    【解决方案3】:

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

    var str = '{ "USER_NAME": "Desc", "PASSWORD": "hiiiiiii"} }';
    var json = JSON.stringify(eval("(" + str + ")"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      • 2020-03-30
      相关资源
      最近更新 更多