我有一个Ajax调用来从Hibernate Objects填充前端的多个字段.这就是为什么我想从Spring返回多个Java Hibernate到Json序列化对象到Ajax.目前我这样做:
@RequestMapping(method=RequestMethod.GET)
@ResponseBody
public String getJson()
{
List<TableObject> result = serviceTableObject.getTableObject(pk);
String json = "";
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
try
{
json = ow.writeValueAsstring(result);
} catch (JsonGenerationException e)
{
// Todo Auto-generated catch block
e.printstacktrace();
} catch (JsonMappingException e)
{
// Todo Auto-generated catch block
e.printstacktrace();
} catch (IOException e)
{
// Todo Auto-generated catch block
e.printstacktrace();
}
return json;
}
这工作正常并返回一个json对象到ajax但我有多个这样的对象所以我想要的是将所有这些对象嵌套在一个json对象中并将后者返回到我的ajax,这样我就可以使用一个对象填充所有字段而不是制作多个ajax调用我需要的每个对象.所以例如我会有类似的东西:
List<TableObject> result = serviceTableObject.getTableObject(pk);
String json = "";
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
json = ow.writeValueAsstring(result);
List<Secondobject> secondobject = serviceSecondobject.getSecondobject(pk);
String json2 = "";
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
json2 = ow.writeValueAsstring(secondobject );
NewJsonObject.add(json)
NewJsonObject.add(json2)
return newJsonObject;
@R_404_5620@:
您应该能够使用Map(因为JSON对象与Map不同)来保存对象:
@RequestMapping(method=RequestMethod.GET)
@ResponseBody
public String getJson() {
Map<String, Object> theMap = new LinkedHashMap<>();
// if you don't care about order just use a regular HashMap
// put your objects in the Map with their names as keys
theMap.put("someObject", someModelObject);
// write the map using your code
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
return ow.writeValueAsstring(theMap);
}
您现在可以访问JS中Map中的所有对象,因为Map将被序列化为JSON-Object:
response.someObject == { // JSON Serialization of someModelObject }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。