【发布时间】:2011-05-23 04:40:54
【问题描述】:
我构建了一个对象列表以放入 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));
在我的 JSON 结果映射中,我输入:
result.put("cars", cars);
如何在 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);
但似乎此列表未发送给客户端。我在 Chrome 调试器中收到此错误:
ReferenceError: value is not defined
... failed to load resource: the server responded with a status of 500 (Internal Server Error)
回答:错误是因为我正在序列化具有休眠注释的对象。我创建了 Bean 对象并将它们序列化,现在序列化(并且迭代正在工作)
【问题讨论】:
-
该状态码 500 表示您的服务器崩溃并烧毁。与您的javascript无关。检查你的 shell/IDE/终端输出是否有 JAVA 错误。
-
是的,问题似乎在于地图的序列化。它不能序列化 Map
> 但它可以序列化 Map 。
标签: javascript jquery json iteration