【发布时间】:2017-04-05 11:35:14
【问题描述】:
我有一些 JSON 响应给出以下内容。我需要做的是,我需要根据属性名称/键对 JSON 响应进行排序。示例 JSON 是,
{
"cometo-yellow:profiles": {
"upstream-speed-rate-profile": [
{
"name": "default-up-speed-rate-profile",
"maximum-net-speed-rate": 200000,
"maximum-gamma-speed-rate": 200000,
"minimum-expected-throughput": 2000,
"minimum-gamma-speed-rate": 2000
},
{
"name": "test",
"maximum-gamma-speed-rate": 8888,
"minimum-gamma-speed-rate": 2222
}
],
"downstream-speed-rate-profile": [
{
"name": "default-down-speed-rate-profile",
"maximum-net-speed-rate": 800000,
"maximum-gamma-speed-rate": 800000,
"minimum-expected-throughput": 2000,
"minimum-gamma-speed-rate": 2000
}
],
"yellow-rate-adaptation-profile": [
{
"name": "default-yellow-rate-adaptation-profile",
"downstream": {
"minimum-degraded-tones": 1,
"time-window": 8,
"vendor-triggering-criteria-enabled": false,
"uncorrectable-dtu": 150
},
"upstream": {
"minimum-degraded-tones": 1,
"time-window": 8,
"vendor-triggering-criteria-enabled": false,
"uncorrectable-dtu": 150
}
}
]
}
}
上面的JSON需要根据属性进行排序。示例输出如下所示。
{
"cometo-yellow:profiles": {
"downstream-speed-rate-profile": [
"maximum-gamma-speed-rate": 800000,
"maximum-net-speed-rate": 800000
"minimum-expected-throughput": 2000,
"minimum-gamma-speed-rate": 2000,
"name": "default-down-speed-rate-profile"
],
"upstream-speed-rate-profile": [
<<SORTED>>
],
"yellow-rate-adaptation-profile": [
<<SORTED>>
]
}
}
在 Java 中是否有任何库可以做到这一点?我们该怎么做呢?
【问题讨论】:
-
通过 GSON 或类似的方法将响应解析为对象后,您可以这样做:stackoverflow.com/questions/26568555/…
-
使用经过排序的 TreeMap 在反序列化时存储地图。