阅读与阅读将JSON对象转换为Javascript数组

时间:2016-07-20 17:16:41

标签: javascript php arrays json

我想将JSON对象转换为数组。

使用PHP脚本使用以下代码创建JSON文件:

$stores = array();
$i=0;
$reponse = $bdd->query('select * from store ');
while ($donnees = $reponse->fetch())
{
    $stores[$i] =  $donnees;
    $i++;
}

var_dump($stores);

$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($stores));
fclose($fp);

在我的JS文件中使用此代码加载数据:

var json_obj = $.getJSON("results.json", function (data) {
    json_obj = data;
    return json_obj;
});

 alert(JSON.stringify(json_obj));

现在我想将我的JSON对象转换为JavaScript数组。但具体方式:

var props=[] ;

props.push({title:json_obj[0].name,Data:json_obj[0].Description});
props.push({title:json_obj[1].name,Data:json_obj[1].Description});


$.each(props, function (i,v)
{
  console.log(i,v);
});

2 个答案:

答案 0 :(得分:2)

看起来您可以简单地将json解析为var props以创建数组对象...

var props = JSON.parse(json_obj);

props现在是一个通过解析你的json字符串构建的js数组对象......

编辑:建议更改您的js文件

var props = [];
$.getJSON("results.json", function (data) {
    $.each( data, function(index) {
        props.push({title:data[index].name,Data:data[index].Description});
    });
});

alert(props);

省略推送到新阵列的其余代码......只需注销道具......

答案 1 :(得分:0)

您需要将数组和推送元素定义到其中, 为什么不尝试这样的事情

var someArray=[]
someArray.push({title:props[0].name,Data:props[0].Description})
someArray.push({title:props[1].name,Data:props[1].Description})

但如果你不知道道具数组的长度,这不是一个好主意

要将json对象转换为数组,您应该遍历json对象并将单个元素推送到某个数组

var someArray = []
for(var key in json_object){
if(json_object.hasOwnProperty(key)){
   var tmpObj={title:json_object[key].name,Data:json_object[key].Description}
   someArray.push(tmpObj)
   console.log(someArray)
 }
}

由于