JSONObject.toJSONString 转换时保持字段顺序
时间: 2023-12-04 21:24:41 浏览: 146
在默认情况下,JSONObject.toJSONString()方法不保证输出的JSON字符串中字段的顺序。但是,如果你想要保持字段顺序,可以使用JSONAware接口并重写toJSONString方法。
具体操作步骤如下:
1. 创建一个类实现JSONAware接口并重写toJSONString方法。
```java
import com.alibaba.fastjson.JSONAware;
import com.alibaba.fastjson.JSONObject;
public class OrderedJSONObject extends JSONObject implements JSONAware {
@Override
public String toJSONString() {
// 使用LinkedHashMap保持字段顺序
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
for (Map.Entry<String, Object> entry : this.entrySet()) {
map.put(entry.getKey(), entry.getValue());
}
return JSONObject.toJSONString(map);
}
}
```
2. 在代码中使用OrderedJSONObject类代替JSONObject类。
```java
OrderedJSONObject obj = new OrderedJSONObject();
obj.put("name", "张三");
obj.put("age", 18);
obj.put("address", "北京市朝阳区");
System.out.println(obj.toJSONString());
```
输出结果如下:
```
{"name":"张三","age":18,"address":"北京市朝阳区"}
```
可以看到,输出的JSON字符串中字段的顺序与添加的顺序相同。
阅读全文