【问题标题】:How to sort REST API response in the desired fashion?如何以所需的方式对 REST API 响应进行排序?
【发布时间】:2019-08-29 21:05:47
【问题描述】:
{
  "data": {
    "uCPE PostStaging Completed": false,
    "Order Submitted": true,
    "uCPE PreStaging Completed": false,
    "Poststaging device deploy success": true,
    "uCPE Activated": false
  },
  "status": "SUCCESS"
}

上面提到的是我的响应正文。当提供不同的输入时,这会不断变化。但我只希望按照以下顺序做出响应。 KEY 应按以下顺序排列,但是每个键的值将发生变化。

“Order Submitted”:”true”, 
"Poststaging device deploy success" : “true”,
"uCPE PreStaging Completed": “ true”,
“uCPE PostStaging Completed" : “false”,
“Order Completed”:”false”,
"uCPE Activated":"false"

【问题讨论】:

  • 你用什么代码来解析这个关心订单的?
  • 你如何构建 ResponseBody json
  • @SMaZ 请在上面找到代码
  • @prsvr 找到上面的代码和逻辑
  • 好的,如果你想要原始的插入顺序,有 LinkedXXX 类,它们在插入顺序中维护一个附加的链表。 LinkedlistLinkedHashMap。不过,这可能会对性能产生影响。

标签: java rest api jsonresponse


【解决方案1】:

如果您使用的是 Jackson,请查看 @JsonPropertyOrder

在你的情况下,它会是这样的:

@JsonPropertyOrder({ 
    "orderSubmitted", 
    "deploySuccess", 
    "preStagingCompleted", 
    "postStaingCompleted", 
    "orderCompleted", 
    "ucpeActivated"
})

【讨论】:

    【解决方案2】:

    正如@Alan Sereb 和@Roman Vottner 建议的那样,如果您使用pojo 类作为响应,@JsonPropertyOrder 是最佳选择。

    但是,如果您将Collection 类对象直接传递给解析器并希望保持顺序,那么您需要使用LinkedXXXArrayList 作为列表接口。在您使用Map<List> 的情况下,您应该使用LinkedHashMap 实现。

    ThisCollection 框架有很好的解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 2015-05-03
      • 2020-01-31
      • 2019-01-17
      相关资源
      最近更新 更多