【问题标题】:how to convert a JSon object to an array in Javascript如何在Javascript中将JSon对象转换为数组
【发布时间】:2012-09-14 08:01:17
【问题描述】:

我将数组返回为

$array = array {
         'id' => 1,
         'name'=>krishna,
}
echo json_encode($array);
exit;

来自 ajax 调用

如何将此 json 值转换为 java 脚本数组?

这是我的实际数据

var data = [{
   "candidate_notes_id":"1",
    "candidate_id":"38",
    "subject":"test",
    "description":"t‌estestsete\netestes\n\n\nsteetet",
    "private":"0",
    "created_date":"2012-09-14 11:55:13",
    "updated_date":"2012-09-14 11:55:13",
    "updated_by":"admin"
  }] 

 var newArray = jQuery.parseJSON(data); 
 alert(newArray);
 return false; 

结果:

                      var newArray = JSON.stringify(data);
          var date_split = newArray.substr(1,newArray.length-2);
          var newData = date_split.replace('\n','<br>');
          var newArray = $.parseJSON(newData); 
          alert(newArray.candidate_notes_id);
          alert(newArray.candidate_id);
          alert(newArray.subject);
          alert(newArray.description);

【问题讨论】:

标签: php javascript arrays json


【解决方案1】:

如果您使用的是 jQuery,那么您可以使用 jQuery.parseJSON(YOUR_AJAX_RESPONSE_DATA); 将 json 转换为 JS 对象

链接:http://api.jquery.com/jQuery.parseJSON/

【讨论】:

  • 这是我的实际数据 var data = [{"candidate_notes_id":"1","candidate_id":"38","subject":"test","description":"testestsete\netestes \n\n\nsteetet","private":"0","created_date":"2012-09-14 11:55:13","updated_date":"2012-09-14 11:55:13", "updated_by":"admin"}] var newArray = jQuery.parseJSON(data);警报(新数组);返回假;返回值为空
  • 控制字符如 \n 需要转义。查看您的错误控制台。 “字符串文字中的控制字符错误”。 \n 必须是 \\n
  • 这是ajax响应? {"candidate_notes_id":"1","candidate_id":"38","subject":"test","description":"t‌​estestsete\netestes\n\n\nsteetet","private":"0","created_date":"2012-09-14 11:55:13","updated_date":"2012-09-14 11:55:13","updated_by":"admin"}
  • 我认为您试图获取数组,但它们在对象中。我修改了你的代码,这里是jsfiddle.net/25sjh 你还需要将\n 转义为\\n。我认为你可以在 PHP 端做到这一点。
  • 好的。如果我的回答对您有帮助,您可以将其设置为正确答案并给予代表分数。
【解决方案2】:

请查看已回答的问题...

您将了解如何将 json 转换为数组。

JSON to javaScript array

var array = [];
$.each(JSONObject, function(i, obj) {
    array.push([obj.id.value, obj.name.value]);
});

【讨论】:

    【解决方案3】:

    你可以使用解析它

    obj = JSON.parse(responseData); // replace `responseData` with your XHR response variable name
    

    在您的成功回调函数中。然后将其转换为数组,如下所示

    var myArray=[];
    myArray[0]=obj.id;
    myArray[1]=obj.name;
    

    但首先是你的

    $array = array {
        'id' => 1,
        'name'=>krishna,
    };
    

    应该是

    $array = array (
        'id' => 1,
        'name'=>'krishna'
    );
    

    DEMO.

    【讨论】:

    • 当我使用 JSON.parse() 时,它会通过 SyntaxError: JSON.parse: unexpected character 之类的错误
    • 而 'krishna' 应该是引号,假设它不是一个常数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 2021-03-20
    • 2019-05-20
    • 2021-05-02
    • 2021-04-23
    相关资源
    最近更新 更多