java json 按字母排序_如何在java中对JSON对象进行排序?

我一直在寻找一段时间,想要一种方法来排序这样的

JSON对象:

{"results": [

{

"layerId": 5,

"layerName": "Pharmaceutical Entities",

"attributes": {

"OBJECTID": "35",

"FACILITYTYPE": "Pharmacy",

"FACILITYSUBTYPE": "24 Hr Pharmacy",

"COMMERCIALNAME_E": "SADD MAARAB PHARMACY"

},

"geometryType": "esriGeometryPoint",

},

{

"layerId": 5,

"layerName": "Pharmaceutical Entities",

"attributes": {

"OBJECTID": "1",

"FACILITYTYPE": "Pharmacy",

"FACILITYSUBTYPE": "24 Hr Pharmacy",

"COMMERCIALNAME_E": "GAYATHY HOSPITAL PHARMACY"

},

"geometryType": "esriGeometryPoint",

},

{

"layerId": 5,

"layerName": "Pharmaceutical Entities",

"attributes": {

"OBJECTID": "255",

"FACILITYTYPE": "Pharmacy",

"FACILITYSUBTYPE": "24 Hr Pharmacy",

"COMMERCIALNAME_E": "AL DEWAN PHARMACY"

},

"geometryType": "esriGeometryPoint",

}

]}

并按“COMMERCIALNAME_E”的值按字母顺序排序:

{"results": [

{

"layerId": 5,

"layerName": "Pharmaceutical Entities",

"attributes": {

"OBJECTID": "255",

"FACILITYTYPE": "Pharmacy",

"FACILITYSUBTYPE": "24 Hr Pharmacy",

"COMMERCIALNAME_E": "AL DEWAN PHARMACY"

},

"geometryType": "esriGeometryPoint"

},

{

"layerId": 5,

"layerName": "Pharmaceutical Entities",

"attributes": {

"OBJECTID": "1",

"FACILITYTYPE": "Pharmacy",

"FACILITYSUBTYPE": "24 Hr Pharmacy",

"COMMERCIALNAME_E": "GAYATHY HOSPITAL PHARMACY"

},

"geometryType": "esriGeometryPoint"

},

{

"layerId": 5,

"layerName": "Pharmaceutical Entities",

"attributes": {

"OBJECTID": "35",

"FACILITYTYPE": "Pharmacy",

"FACILITYSUBTYPE": "24 Hr Pharmacy",

"COMMERCIALNAME_E": "SADD MAARAB PHARMACY"

},

"geometryType": "esriGeometryPoint"

}

]}

我找不到任何可以执行此操作的代码.谁能给我一些帮助?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要根据key首字母排序JSON,可以使用JavaJSONObject和TreeMap来实现。首先,将JSON字符串解析为JSONObject对象。然后,创建一个TreeMap对象,并通过迭代JSONObject的keySet获取所有的key。将这些key添加到TreeMap,由于TreeMap会根据其自然排序对元素进行排序,所以这些key会按照首字母进行排序。最后,通过遍历TreeMap的entrySet,可以获取到按首字母排序的key和对应的value,可以将其重新组装成一个新的JSON对象。 下面是具体的代码实现: ```java import org.json.JSONObject; import java.util.Iterator; import java.util.TreeMap; public class Main { public static void main(String[] args) { String jsonStr = "{\"name\": \"John\", \"age\": 30, \"address\": \"New York\"}"; // 解析JSON字符串为JSONObject对象 JSONObject jsonObject = new JSONObject(jsonStr); // 创建TreeMap并将JSONObject的key按首字母排序 TreeMap<String, Object> sortedMap = new TreeMap<>(); Iterator<String> keys = jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); sortedMap.put(key, jsonObject.get(key)); } // 构建新的JSONObject对象 JSONObject sortedJson = new JSONObject(); for (String key : sortedMap.keySet()) { sortedJson.put(key, sortedMap.get(key)); } System.out.println(sortedJson.toString()); } } ``` 以上代码会输出按首字母排序后的JSON字符串: ```json {"address":"New York","age":30,"name":"John"} ``` 这样就实现了根据key首字母排序JSON的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值