简体   繁体   English

在 spring 引导中解析 json 响应的最佳方法

[英]best approach to parse json response in spring boot

I am consuming a rest-end point using rest template which returns below josn messages.我正在使用 rest 模板使用休息端点,该模板返回以下 josn 消息。 object Wrappers is better approach or json object parsing is better? object Wrappers 是更好的方法还是 json object 解析更好?

[
      {
      "id": "UAMwcI",
      "messageId": "PyXPTk-6XUBhbONWZ2DOw3___pFykwV5bQ",
      "timestamp": 1574330759814,
      "type": "MESSAGESENT",
      "initiator": {"user":       {
         "userId": 345315370604341,
         "firstName": "Sanjeet",
         "lastName": "Mohanty",
         "displayName": "Sanjeet Mohanty",
         "email": "Sanjeet.mohanty@db.com",
         "username": "Sanjeet.mohanty@db.com"
      }},
      "payload": {"messageSent": {"message":       {
         "messageId": "PyXPTk-6XUBhbONWZ2DOw3___pFykwV5bQ",
         "timestamp": 1574330759814,
         "message": "<div data-format=\"PresentationML\" data-version=\"2.0\" class=\"wysiwyg\"><p>test 2 <\/p><\/div>",
         "data": "{}",
         "user":          {
            "userId": 345315370604341,
            "firstName": "Sanjeet",
            "lastName": "Mohanty",
            "displayName": "Sanjeet Mohanty",
            "email": "Sanjeet.mohanty@db.com",
            "username": "Sanjeet.mohanty@db.com"
         },
         "stream":          {
            "streamId": "cL7jzEDwLxX_gN7D1QbMQn___pP73Ad6dA",
            "streamType": "IM"
         },
         "externalRecipients": false,
         "userAgent": "DESKTOP-40.0.0-10726-Windows-7-Chrome-76.0.3809.87",
         "originalFormat": "com.symphony.messageml.v2"
      }}}
   },
      {
      "id": "Bvua7t",
      "messageId": "8usJ_xioHKkRrevhyn38wn___pFykv-WbQ",
      "timestamp": 1574330761321,
      "type": "MESSAGESENT",
      "initiator": {"user":       {
         "userId": 345315370604341,
         "firstName": "Sanjeet",
         "lastName": "Mohanty",
         "displayName": "Sanjeet Mohanty",
         "email": "Sanjeet.mohanty@db.com",
         "username": "Sanjeet.mohanty@db.com"
      }},
      "payload": {"messageSent": {"message":       {
         "messageId": "8usJ_xioHKkRrevhyn38wn___pFykv-WbQ",
         "timestamp": 1574330761321,
         "message": "<div data-format=\"PresentationML\" data-version=\"2.0\" class=\"wysiwyg\"><p>test 3<\/p><\/div>",
         "data": "{}",
         "user":          {
            "userId": 345315370604341,
            "firstName": "Sanjeet",
            "lastName": "Mohanty",
            "displayName": "Sanjeet Mohanty",
            "email": "Sanjeet.mohanty@db.com",
            "username": "Sanjeet.mohanty@db.com"
         },
         "stream":          {
            "streamId": "cL7jzEDwLxX_gN7D1QbMQn___pP73Ad6dA",
            "streamType": "IM"
         },
         "externalRecipients": false,
         "userAgent": "DESKTOP-40.0.0-10726-Windows-7-Chrome-76.0.3809.87",
         "originalFormat": "com.symphony.messageml.v2"
      }}}
   }
]

there is a lot of Liberaiyes to serialize deserialize JSON.有很多 Liberaiyes 序列化反序列化 JSON。

if you have Pojo class match the return value from your rest API you could use for instance Jackson to do the job如果您有 Pojo class 匹配来自您的 rest API 的返回值,您可以使用例如 Z7930C951E6009E9A98E548

PojoClass mypojo = new ObjectMapper().readValue(JsonString, PojoClass.class);

OR simply converted to JSonNode and iterate over the Nodes或简单地转换为 JSonNode 并遍历节点

JsonNode jsonNode = new ObjectMapper().readTree(JsonString); 

check the link for more info https://www.baeldung.com/jackson-object-mapper-tutorial检查链接以获取更多信息https://www.baeldung.com/jackson-object-mapper-tutorial

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM