我正在尝试执行 Spring MVC 3 ajax 调用来填充 json 序列化数据的下拉列表。
我看到的问题是我不确定 JSON Spring 为我的列表返回什么格式,以及为什么。
返回 Ajax 数据的方法如下所示:
@RequestMapping(value="/getMyObjects", method=RequestMethod.POST)
@ResponseBody
public List<MyObject> getMyObjects () {
List<MyObject> myobjects = // populate list
return myobjects;
}
据我了解,这应该是我需要做的,对吧?
在我的应用程序日志中,我看到它确实将响应转换为 JSON,如下所示:
2012-06-20 11:08:21,125 DEBUG (AbstractMessageConverterMethodProcessor.java:139) - 写为 [[MyObject [id=1376, name=Something test], MyObject [id=1234 name=More test]]] 作为“应用程序/ json;charset=UTF-8" 使用 [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter@d1b7e5]
但是那个 JSON 字符串对我来说看起来很奇怪,这有效吗?
我期待像 [{ id : 1376, name="Something test"}, { id : 1234, name="More test"}]
在客户端,当我收到响应并发出警报时,我看到它说它是一个像这样的对象数组:[Object object] [Object object],我不知道如何处理这些数据。
我尝试:警报(数据);-- 给出我刚才描述的输出 $(data).each(function() { alert(this.id); // undefined! });
如何使用这种 JSON 数据,或者如何将其转换为更易于管理的数据?
[编辑] 将我的客户端代码附加到我正在尝试的当前警报响应中: $.ajax({ type : "POST", url : "getMyObjects", success : function(data) { alert(data); // [Object object ] [Object object] alert(data.value); // 未定义 $(data).each(function() { alert(this.id); // 每次迭代未定义 }); }, error : function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus); } });