2012-07-11 115 views
1

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

我的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”: “用户1”, “ID”:1, “IMAGE_URL”: “/照片/列表/ missing.png”,“水平“:1,” 位置 “:{” 名称 “:” 用户ABC”, “描述”: “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

我没有得到什么回事。 请告诉我任何解决方案。

在此先感谢。

+3

看起来问题在于,您将tempJSON用作对象:'tempJSON [0]'将是JSON字符串的第一个字符。如果您需要访问该对象,则需要使用'res.Users [0]' – steveukx 2012-07-11 07:20:55

+0

steveukx:谢谢。它的工作。 – 2012-07-11 07:29:15

回答

0

是考虑整个价值作为字符串

代码::

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

它的工作。

享受编码。
谢谢。

0

我认为这个问题是

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

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

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

+0

嗨它通过res.Users [0]值解决。 它工作正常。可能是它被视为一个字符串的整体价值。 – 2012-07-11 07:31:57

0

在获取tempJSON中的值时,您没有将该对象转换为JSON(字符串)。 相反,你试试下面的代码: -

var tempJSON = res["Users"]; 

供大家参考: - try it out here