微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Jackson将多个对象序列化为一个

我有一个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] 举报,一经查实,本站将立刻删除。

相关推荐