Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 迭代JSON中的复杂对象列表?_Javascript_Jquery_Json_Iteration - Fatal编程技术网

Javascript 迭代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

我构建了一个要放入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", 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’
});