从JSON创建数组数组
我在ajax调用后接收以下作为response
在php json_encode
:
"['2013-02-24', 0]", "['2013-02-25', 0]", "['2013-02-26', 1]", "['2013-02-27', 6]", "['2013-02-28', 6]", "['2013-03-01', 3]", ...
如何从这个数组数组中使用JavaScript? 这有可能吗? 我的意思是,我尝试过使用jQuery makeArray
或使用parseJSON
没有成功。 什么是最喜欢的方法?
编辑:
function submitForm(t) { $.ajax({type:'GET', url: 'charts.php', data:$(page_id).serialize(), success: function(response) { var myFanRemovesData = new Array(response); var myChart = new JSChart(chart_id, 'line'); myChart.setDataArray(myFanRemovesData);
我必须使用数组数组来设置myFanRemovesData
1)删除双引号( "
):
var json = json.replace(/"/g, '');
2)将整个东西包在方括号中:
json = "[" + json + "]";
3)用双引号替换单引号(因为单引号不会解析):
json = json.replace(/'/g, '"');
4)解析json字符串:
var arrays = JSON.parse(json);
这是一个有效的例子 。 它将警告第一个数组中的第一个日期。 (注意:从DIV中提取数据以模拟AJAX调用并避免我不得不使用转义引号字符)
尝试:
var response = ["['2013-02-24', 0]", "['2013-02-25', 0]", "['2013-02-26', 1]"]; for (var i = 0; i < response.length; i++) { var cleaned = response[i].replace(/'/g, "\""); response[i] = $.parseJSON(cleaned); }
演示: http : //jsfiddle.net/hu3Eu/
在此代码之后, response
数组将包含由原始字符串构成的数组。
只是示例..因为您没有向我们提供任何代码……
$.ajax({ type: "POST", url: "some.php", data: { name: "John", location: "Boston" }, dataType: 'json', }).done(function( responde ) { $.each(responde, function(i, v){ alert(v.0 + ' --- ' + v.1); }); });
如果您收到并期待json,您可以直接使用它作为数组/对象:)如果它的数组你必须进行每个循环,这样你就可以访问每个值..