0

i have a json string returned to a hidden value and i want to assign it to a javascript array and print each element of the array.

Json string returned by hdn_client_windows - ["5703","5704"]

Javascript array assignment is as below.

var times = $('#hdn_client_windows').val();
alert(times[0]); // this printed only--> [
alert(times[1]); // this printed only--> "

what am i doing wrong ?

4

4 回答 4

7

您需要先将 JSON 解析为数组JSON.parse

var times = JSON.parse($('#hdn_client_windows').val());

由于您已经在使用 jQuery,为了安全起见,最好推迟使用 jQuery $.parseJSON(与旧浏览器完全兼容):

var times = $.parseJSON($('#hdn_client_windows').val());
于 2013-09-30T09:31:02.817 回答
3

使用$.parseJSON()

var str = '["5703","5704"]';
var times = $.parseJSON( str );
于 2013-09-30T09:33:48.440 回答
3

您必须首先使用 JSON.parse 解析字符串(旧浏览器可能需要您加载它):

var times = JSON.parse($('#hdn_client_windows').val());
alert(times[0]); // Will display first item
alert(times[1]); // Will display second item
于 2013-09-30T09:31:51.440 回答
2

你可以使用jquery的parseJSON()功能。

var str = '["5703","5704"]';
var parsed = $.parseJSON( str );

parsed对象现在包含数组:["5703","5704"]

参考 -jQuery.parseJSON( json )

“采用格式良好的 JSON 字符串并返回生成的 JavaScript 对象。”

于 2013-09-30T09:32:15.960 回答