【发布时间】:2012-11-02 13:23:08
【问题描述】:
简而言之,我已经开始我的问题了,
我只是读取json文件,
[{"FirstCategory":"Bath","SecondCategory":"Bath Accessories","ThirdCategory":""}, {"FirstCategory":"Bath","SecondCategory":"Faucets","ThirdCategory":""},{"FirstCategory":"Bath","SecondCategory":"Fixtures","ThirdCategory":""},{"FirstCategory":"Bath","SecondCategory":"Vanities","ThirdCategory":""},{"FirstCategory":"Building Materials","SecondCategory":"Concrete","ThirdCategory":""},{"FirstCategory":"Building Materials","SecondCategory":"Fencing","ThirdCategory":""},{"FirstCategory":"Building Materials","SecondCategory":"Gypsum","ThirdCategory":""},{"FirstCategory":"Building Materials","SecondCategory":"Insulation","ThirdCategory":""},{"FirstCategory":"Building Materials","SecondCategory":"Insulssdation","ThirdCategory":""}]
并试图转换成数组
Array
(
[Bath] => Array
(
[Bath Accessories] => Array
(
[0] => test
)
[Faucets] => Array
(
[0] => test1
[1] => test2
)
)
)//sorry i have used PHP for simple formatting the array.
我花了很多时间在这件事上,但我无法成功,请帮助我。
My javascript code : (not working.)
var FirstCategory = [];
var SecondCategory = [];
var ThirdCategory = [];
$.getJSON('tree.json', function(data) {
var dataObj = new Array();
$.each(data,function(i){
dataObj[data[i].FirstCategory] = new Array();
if([data[i].SecondCategory] in dataObj[data[i].FirstCategory])
dataObj[data[i].FirstCategory][data[i].SecondCategory] = data[i].SecondCategory;
else
dataObj[data[i].FirstCategory][data[i].SecondCategory] = new Array();
dataObj[data[i].FirstCategory][data[i].SecondCategory][data[i].ThirdCategory] = new Array();
});
console.log(dataObj);
/*
$.each(data,function(i){
if (FirstCategory == '') {
FirstCategory.push(data[i].FirstCategory);
}
else
{
if(!FirstCategory.contains(data[i].FirstCategory))
{
//root
FirstCategory.push(data[i].FirstCategory);
}
else
{
//------- second level category -------//
if (SecondCategory == '') {
SecondCategory.push(data[i].SecondCategory);
}
else
{
if(!SecondCategory.contains(data[i].SecondCategory))
{
SecondCategory.push(data[i].SecondCategory);
}
else
{
ThirdCategory.push(data[i].ThirdCategory);
}
}
}
}
});
*/
});
Array.prototype.contains = function(obj) {
var i = this.length;
while (i--) {
if (this[i] == obj) {
return true;
}
}
return false;
}
提前致谢。
【问题讨论】:
-
您的 json 不在该表单上是否有原因?如果不是,我建议改为更改后端。
-
首先你应该意识到,在 JavaScript 中,你创建的是一个普通的对象,而不是一个数组。
-
你从哪里得到这些
test、test1、test2值?
标签: javascript jquery arrays json multidimensional-array