Java Object to JSON
发布时间:2020-12-15 05:24:11 所属栏目:Java 来源:网络整理
导读:一开始的时候,使用Jackson的ObjectMapper来转,每个JSON对象都要建模,如果那个JSON嵌套了4层,就得写4个Java Class,而且一个list里面还可以放不同类型的对象,要是哪天需求一改,就得从一堆class里面挖宝(雷)。 ? 后来看到JDK里面有这么一个写法: Json
一开始的时候,使用Jackson的ObjectMapper来转,每个JSON对象都要建模,如果那个JSON嵌套了4层,就得写4个Java Class,而且一个list里面还可以放不同类型的对象,要是哪天需求一改,就得从一堆class里面挖宝(雷)。
? 后来看到JDK里面有这么一个写法: JsonObject value = Json.createObjectBuilder() .add("firstName","John") .add("lastName","Smith") .add("age",25) .add("address",Json.createObjectBuilder() .add("streetAddress","21 2nd Street") .add("city","New York") .add("state","NY") .add("postalCode","10021")) .add("phoneNumber",Json.createArrayBuilder() .add(Json.createObjectBuilder() .add("type","home") .add("number","212 555-1234")) .add(Json.createObjectBuilder() .add("type","fax") .add("number","646 555-4567"))) .build(); 看着就很爽,一眼就可以看清整个JSON的结构,好写好看。可是这种写法,要用到json-lib,json-lib不建议用在1.7或以上的Java,原因在此。 public class JsonObjectBuilder { private JSONObject obj = new JSONObject(); public JsonObjectBuilder add(String key,Object value) { obj.put(key,value); return this; } public JSONObject build() { return obj; } } public class JsonArrayBuilder { private JSONArray array = new JSONArray(); public JsonArrayBuilder add(Object item) { array.add(item); return this; } public JSONArray build() { return array; } } public class JsonBuilder { public static JsonObjectBuilder newObject() { return new JsonObjectBuilder(); } public static JsonArrayBuilder newArray() { return new JsonArrayBuilder(); } } 使用示范: JSONObject obj = JsonBuilder.newObject() .add("name","Andy") .add("age",28) .add("friends",JsonBuilder.newArray() .add(JsonBuilder.newObject() .add("name","Maggie") .add("hobby","hike") .build()) .add(JsonBuilder.newObject() .add("name","Tonny") .add("city","hongkong") .build()) .build()) .build(); 做是做出来了,但还不是我最终想要的东西,我最想要的是类似JavaScript的效果。 { "name": ${name},"friends": [ { "name": ${friend} } ] } 目前的Java还做不出来,期待Java语法的改进。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |