JSONObject.parseObject 、JSONObject.toJSONString
導讀 | 在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")
原文來自 :
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2847368/,如需轉載,請註明出處,否則將追究法律責任。