【问题标题】:Storing JSON Value in javascript Array将 JSON 值存储在 javascript 数组中
【发布时间】:2012-07-10 18:20:08
【问题描述】:

我正在使用 JSON 值存储在 javascript 数组中。

我的 JSON 值:

"Users":[{"user_name":"User 1","id":1,"image_url":"/photos/list/missing.png","level":1,"position":{"name":"User ABC","description":"desc"}}]

我收到与上述相同的警报响应。 代码:

alert("Response : " + $.toJSON(res["Users"]));

O/P : 响应 : [{"user_name":"User 1","id":1,"image_url":"/photos/list/missing.png","level":1,"position" :{"name":"User ABC","description":"desc"}}]

将此值存储为 代码:

tempJSON = $.toJSON(res["Users"]);

alert("JSON Array : " + tempJSON.length); alert("Name : " + tempJSON[0]. user_name);

O/P:JSON 数组:132 -> 字符数。 名称:未定义。 -> 因为它找不到“user_name”的值

如果我将此值存储为简单字符串。 代码:

tempJSON = [{"user_name":"User 1","id":1,"image_url":"/photos/list/missing.png","level":1,"position":{"name":"User ABC","description":"desc"}}];

alert("JSON Array : " + tempJSON.length); alert("Name : " + tempJSON[0]. user_name);

然后准确地说,

O/P:

JSON 数组:1 -> 数组数量。

名称:用户 1

我不明白发生了什么。 请告诉我任何解决方案。

提前致谢。

【问题讨论】:

  • 看起来问题在于您使用 tempJSON 作为对象:tempJSON[0] 将是 JSON 字符串的第一个字符。如果您需要访问该对象,则需要使用res.Users[0]
  • steveukx:谢谢伙计。它的工作。

标签: javascript json


【解决方案1】:

我认为问题是

tempJSON = $.toJSON(res["Users"]);

=> 你在 tempJSON 变量中得到一个字符串,而不是对象!

也许使用 firebug 或任何其他开发者工具来调试你的 JS。

【讨论】:

  • 嘿,它由 res.Users[0] 值解决。它工作正常。可能是将整个值视为字符串。
【解决方案2】:

在获取 tempJSON 中的值时,您没有将对象转换为 JSON(String)。 相反,您尝试以下代码:-

var tempJSON = res["Users"];

供您参考:- try it out here

【讨论】:

    【解决方案3】:

    它被认为是整个值作为一个字符串

    代码::

    var tempJSON = $.toJSON(res.Users[0]);
    

    它正在工作。

    享受编码。
    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 2016-10-09
      相关资源
      最近更新 更多