public static String toJson(Object values) { return JSON.toJSONString(values, (ValueFilter) (object, name, value) -> { if(value == null){ return ""; } return value; }); } 优化
时间: 2024-02-14 21:19:34 浏览: 69
首先,我们可以将 `(ValueFilter)` 强制类型转换简化为 lambda 表达式:
```
public static String toJson(Object values) {
return JSON.toJSONString(values, (object, name, value) -> {
if (value == null) {
return "";
}
return value;
});
}
```
然后,我们可以将 lambda 表达式简化为方法引用:
```
public static String toJson(Object values) {
return JSON.toJSONString(values, (object, name, value) -> value == null ? "" : value);
}
```
这样就更加简洁清晰了。另外,如果我们使用最新版本的 FastJSON,它已经默认过滤了 null 值,所以我们可以直接写成:
```
public static String toJson(Object values) {
return JSON.toJSONString(values);
}
```
这样就更加简单了。
相关问题
List<Map<String, Object>>通过JSON.toJSONString转换成String字符串 如何将其转换回来
您可以使用JSON.parseObject()方法将JSON格式的字符串转换回List<Map<String, Object>>类型的数据。该方法的使用方式如下:
String jsonString = "JSON字符串";
List<Map<String, Object>> list = JSON.parseObject(jsonString, new TypeReference<List<Map<String, Object>>>() {});
其中,jsonString是JSON格式的字符串,new TypeReference<List<Map<String, Object>>>() {}表示将JSON字符串转换成List<Map<String, Object>>类型的数据。
Setl4101 setl4101 = JSON.parseObject(JSON.toJSONString(baseBody.getInput(),(ValueFilter) (object, name, value) -> { if(value == ""){ return null; } return value; }), Setl4101.class);
这段代码的作用是将一个JSON对象转换成Setl4101对象。具体过程如下:
1. `baseBody.getInput()`获取到一个JSON对象,`JSON.toJSONString()`方法将这个JSON对象转换成JSON字符串。
2. `(ValueFilter) (object, name, value) -> { if(value == ""){ return null; } return value; }`是一个ValueFilter对象,用于在JSON转换时过滤掉值为空字符串的属性。当遇到属性值为空字符串时,将其转换成null值。
3. `JSON.parseObject()`方法将JSON字符串转换成Setl4101对象,第一个参数传入JSON字符串,第二个参数传入ValueFilter对象,第三个参数传入Setl4101.class,指定转换后的对象类型。
4. 最终将转换后的Setl4101对象赋值给setl4101变量。