共计 2168 个字符,预计需要花费 6 分钟才能阅读完成。
导读 | 在 Java 开发中,通常需要将一个实体对象转换成 Json 字符串,使用 FastJson 来实现这种转换十分方便,只要使用 FastJson 中 JSONObject 静态类提供的 toJSONString() 静态方法即可,但是如果不了解这个方法,很有可能就会使得转换后的 Json 不合自己的要求。 |
JSONObject.toJSONString
使用 JSONObject 把实体对象转换成 Json 字符串时,如果实体对象中有些属性的值为 null,则默认转换后的 Json 字符串中是不包含这些值为 null 的属性。
User user = new User();
user.setId(1L);
user.setUsername("张三");
user.setPassword("");
user.setMobile(null);
user.setCountry("中国");
user.setCity("武汉");
String jsonUser = null;
/**
* 指定排除属性过滤器和包含属性过滤器
* 指定排除属性过滤器:转换成 JSON 字符串时,排除哪些属性
* 指定包含属性过滤器:转换成 JSON 字符串时,包含哪些属性
*/
String[] excludeProperties = {"country", "city"};
String[] includeProperties = {"id", "username", "mobile"};
PropertyPreFilters filters = new PropertyPreFilters();
PropertyPreFilters.MySimplePropertyPreFilter excludefilter = filters.addFilter();
excludefilter.addExcludes(excludeProperties);
PropertyPreFilters.MySimplePropertyPreFilter includefilter = filters.addFilter();
includefilter.addIncludes(includeProperties);
/**
* 情况一:默认忽略值为 null 的属性
*/
jsonUser = JSONObject.toJSONString(user, SerializerFeature.PrettyFormat);
System.out.println("情况一:\n" + jsonUser);
/**
* 情况二:包含值为 null 的属性
*/
jsonUser = JSONObject.toJSONString(user, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
System.out.println("情况二:\n" + jsonUser);
/**
* 情况三:默认忽略值为 null 的属性,但是排除 country 和 city 这两个属性
*/
jsonUser = JSONObject.toJSONString(user, excludefilter, SerializerFeature.PrettyFormat);
System.out.println("情况三:\n" + jsonUser);
/**
* 情况四:包含值为 null 的属性,但是排除 country 和 city 这两个属性
*/
jsonUser = JSONObject.toJSONString(user, excludefilter, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
System.out.println("情况四:\n" + jsonUser);
/**
* 情况五:默认忽略值为 null 的属性,但是包含 id、username 和 mobile 这三个属性
*/
jsonUser = JSONObject.toJSONString(user, includefilter, SerializerFeature.PrettyFormat);
System.out.println("情况五:\n" + jsonUser);
/**
* 情况六:包含值为 null 的属性,但是包含 id、username 和 mobile 这三个属性
*/
jsonUser = JSONObject.toJSONString(user, includefilter, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
System.out.println("情况六:\n" + jsonUser);
}
JSONObject.parseObject
result 格式:
{
"success":"true",
"data":{"shop_uid":"123"}
JSONObject shop_user =JSON.parseObject(result);
JSON.parseObject(shop_user.getString("data")).getString("shop_uid")
正文完
星哥玩云-微信公众号