我想将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);
});
答案 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)
}
}
由于