3

response在 php 中使用ajax 调用后收到以下内容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 制作?这甚至可能吗?我的意思是,我尝试过使用 jQuerymakeArrayparseJSON没有成功。最首选的方法是什么?

编辑:

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

4

3 回答 3

3

1) 去掉双引号 ( "):

var json = json.replace(/"/g, '');

2)将整个内容放在方括号中:

json = "[" + json + "]";

3)用双引号替换单引号(因为单引号不会解析):

json = json.replace(/'/g, '"');

4)解析json字符串:

var arrays = JSON.parse(json);

这是一个工作示例。它将提醒第一个数组中的第一个日期。(注意:数据是从 DIV 中提取的,以模拟 AJAX 调用并避免我不得不乱用转义引号字符)

于 2013-04-24T13:13:53.897 回答
2

尝试:

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数组将包含由原始字符串组成的数组。

于 2013-04-24T13:13:03.310 回答
1

只是示例..因为您没有向我们提供任何代码...

$.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,您可以直接将其用作数组/对象 :) 如果它的数组您必须创建一个 each 循环,以便您可以访问每个值..

于 2013-04-24T13:15:01.073 回答