数组中的Javascript/Jquery OOP数组
简言之,我正在对我的数据库进行REST调用,并获得一份配料列表。JSON看起来像:数组中的Javascript/Jquery OOP数组,javascript,jquery,Javascript,Jquery,简言之,我正在对我的数据库进行REST调用,并获得一份配料列表。JSON看起来像: [{"SubItemID":1,"MainItemID":1,"SubName":"2%","MainName":"Milk"}, {"SubItemID":2,"MainItemID":1,"SubName":"Skim/Fat Free","MainName":"Milk"}, {"SubItemID":3,"MainItemID":2,"SubName":"Chedder","MainName":"Chee
[{"SubItemID":1,"MainItemID":1,"SubName":"2%","MainName":"Milk"},
{"SubItemID":2,"MainItemID":1,"SubName":"Skim/Fat Free","MainName":"Milk"},
{"SubItemID":3,"MainItemID":2,"SubName":"Chedder","MainName":"Cheese"}]
我要做的是将其转换为一个有用的数组,该数组的组织形式如下:
$.ajax({
url: "../api/IngredientChoices",
contentType: "json",
success: function (data) {
var _subCategories = {};
var _mainCategories = [];
$.each(data, function (index, item) {
if ($.inArray(item.MainName, _mainCategories) === -1) {
_mainCategories.push(item.MainName);
}
});
$.each(_mainCategories, function () {
alert(this);
});
}
});
详细的工作答案。数据将添加到关联数组中
obj = JSON.parse(data);
console.log(obj);
d = {}
$.each(obj, function (index, item) {
if (!(item.MainItemID in d)) {
d[item.MainItemID] = [];
d[item.MainItemID][0] = item.MainName;
d[item.MainItemID][1] = {}
}
d[item.MainItemID][1][item.SubItemID] = item.SubName;
});
console.log(d);
输出:
Object {1: Array[2], 2: Array[2]}
1: Array[2]
0: "Milk"
1: "2%"
2: "Skim/Fat Free"
2: Array[2]
0: "Cheese"
3: "Chedder"
详细的工作答案。数据将添加到关联数组中
obj = JSON.parse(data);
console.log(obj);
d = {}
$.each(obj, function (index, item) {
if (!(item.MainItemID in d)) {
d[item.MainItemID] = [];
d[item.MainItemID][0] = item.MainName;
d[item.MainItemID][1] = {}
}
d[item.MainItemID][1][item.SubItemID] = item.SubName;
});
console.log(d);
输出:
Object {1: Array[2], 2: Array[2]}
1: Array[2]
0: "Milk"
1: "2%"
2: "Skim/Fat Free"
2: Array[2]
0: "Cheese"
3: "Chedder"
您可能需要编辑您的问题。您想要的“有用”数组实际上不是数组。您可能需要以下内容:
[
{
名称:'牛奶',
子类型:['2%,'Fat Free'],
},
{
名称:奶酪,
子类型:[“切达”],
}
]
您可能需要编辑您的问题。您需要的“有用”数组实际上不是数组。您可能需要以下内容:
[
{
名称:'牛奶',
子类型:['2%,'Fat Free'],
},
{
名称:奶酪,
子类型:[“切达”],
}
]
您可以在对象集合中设置一个数组,这样您就可以对其进行排序:
var dataArray = [];
for(var k in ordered) {
dataArray.push(ordered[k]);
}
console.log(dataArray);
如果您计划更复杂的数据解析或操作,我会推荐一些模型/收集框架,如:,甚至使用or。
您可以在对象集合中设置一个数组,这样您就可以对其进行排序:
var dataArray = [];
for(var k in ordered) {
dataArray.push(ordered[k]);
}
console.log(dataArray);
如果您计划更复杂的数据解析或操作,我会推荐一些模型/收集框架,比如:,甚至使用or。您使用的是JSON
parse()
?@ATOzTOA我添加了我当前的Ajax代码您使用的是JSONparse()吗
?@ATOzTOA我添加了我当前的Ajax代码。我认为OP是在问如何重构JSON,而不是如何解析。我认为OP是在问如何重构JSON,而不是如何解析JSON。你没有得到MainName
。你没有得到MainName
。