Json和JsonString之间互转总结
一、使用Gson库(推荐)
Gson是Google提供的轻量级JSON处理库,支持对象与JSON的快速双向转换。
Gson gson = new Gson();
String jsonString = gson.toJson(params); // 对象转JSON字符串
JSONObject jsonObject = new JSONObject(jsonString); // 字符串转JSONObject
- 特性:
- 自动递归处理嵌套对象和集合。
- 默认忽略
null
字段,可通过serializeNulls()
配置保留空值。
- 注解支持:
使用@SerializedName
自定义JSON键名,例如:
public class User {
@SerializedName("user_name")
private String name;
}
二、使用Fastjson库
阿里开源的Fastjson以高性能著称,适合复杂JSON结构处理。
String jsonString = JSONObject.toJSONString(params); // 对象转JSON字符串
JSONObject jsonObject = JSONObject.parseObject(jsonString); // 字符串转JSONObject
空值处理:
通过SerializerFeature
控制空值行为,例如:
String json = JSON.toJSONString(params,
SerializerFeature.WriteMapNullValue, // 保留空键
SerializerFeature.WriteNullStringAsEmpty // null转空字符串
);
三、使用Jackson库
Jackson适合需要精细控制序列化逻辑的场景(如动态过滤字段)。
ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(params); // 对象转JSON字符串
JSONObject jsonObject = new JSONObject(jsonString); // 字符串转JSONObject
- 注解支持:
使用@JsonProperty
定义字段映射关系。