Javascript 迭代JSON中的复杂对象列表?
我构建了一个要放入JSON结果的对象列表:Javascript 迭代JSON中的复杂对象列表?,javascript,jquery,json,iteration,Javascript,Jquery,Json,Iteration,我构建了一个要放入JSON结果的对象列表: Person personA = new Person("nameA", "age"); Person personB = new Person("nameB", "age"); Person personC = new Person("nameC", "age"); List<Car> cars = new ArrayList<Car>(); cars.add(new Car("Blue", "Small", person
Person personA = new Person("nameA", "age");
Person personB = new Person("nameB", "age");
Person personC = new Person("nameC", "age");
List<Car> cars = new ArrayList<Car>();
cars.add(new Car("Blue", "Small", personA));
cars.add(new Car("Green", "Big", personB));
cars.add(new Car("Red", "Big", personC));
如何在JavaScript中迭代此集合。我需要访问对象的“深层”元素
$.getJSON(window.actionName,{
someId: someId}, function (ans){
//I want something like this
foreach(car in ans.cars){
car.person.age
}
});
编辑:
result map private Map<String,List<Car>> result =
new HashMap<String, List<Car>>();
result.put("cars", cars);
回答:错误是因为我正在序列化具有hibernante注释的对象。我创建了Bean对象,并对它们进行了序列化,现在序列化(迭代正在进行)功能性风格:
ans.cars.forEach(function(car) {
// do something with ‘car’
});
这是标准的ECMAScript 5。由于您已经标记了这个“jquery”,如果您不想依赖数组,您可能需要尝试jquery版本。forEach
要在那里:
$.each(ans.cars, function(index, car) {
// do something with ‘car’
});
我尝试了所有的答案。我编辑了这个问题。当我以map的形式发送简单map时,它正在工作。@vale4674我不知道您在服务器上做什么,但错误在于您的服务器代码(可能导致500错误),而不是javascript。我会考虑查看你的序列化机制,也许他们不能序列化一个哈希图,但是当我有一个:私人地图结果=新Hasmap();当我在key和value中放入字符串时,序列化进行得很顺利。但现在不是。集合中有问题吗?我在设置结果映射之前和之后放置了system.out.println(),结果设置中似乎出现了错误。尝试了所有答案。我编辑了这个问题。当我发送简单的地图时,地图正在工作。状态代码500意味着你的服务器崩溃和烧毁。与javascript无关。检查shell/IDE/terminal输出中是否存在JAVA错误。是的,它似乎是在映射的序列化中。它不能序列化映射,但可以序列化映射。
//...
for(var i = 0, car; car = ans.cars[i]; ++i){
alert(car.person.age);
}
ans.cars.forEach(function(car) {
// do something with ‘car’
});
$.each(ans.cars, function(index, car) {
// do something with ‘car’
});