84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
欢迎选择我的课程,让我们一起见证您的进步~~
直接用反射检测json是否有该字段不就行了。
class A { String a; String b; List<B> list; } class B{...} private static void checkJson(JSONObject json, Class<?> clazz) { Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { if (!json.has(field.getName())) { throw new JsonParseException(); } // 遍历数组 Type type = field.getGenericType(); if (type instanceof ParameterizedType) { Type[] types = ((ParameterizedType) type).getActualTypeArguments(); Type t = types[0]; JSONArray array = json.getJSONArray(field.getName()); for (int i = 0; i < array.length(); i++) { Object childJSON = array.get(i); if (childJSON instanceof JSONObject) { checkJson((JSONObject) childJSON, (Class) t); } } } } } public static void main(String[] args){ A a = new A(); ... String json = new Gson().toJson(a); checkJson(new JSONObject(json), A.class); }
貌似没找到,可以自己通过业务逻辑进行控制,在序列化之后得到的Object进行空判断即可
这个只能写一个自定义的Deserializer, 可以参看stackoverflow,有人问过同样的问题。
http://stackoverflow.com/questions/3163193/strict-json-parsing-with-googles-gson
直接用反射检测json是否有该字段不就行了。
貌似没找到,可以自己通过业务逻辑进行控制,在序列化之后得到的Object进行空判断即可
这个只能写一个自定义的Deserializer, 可以参看stackoverflow,有人问过同样的问题。
http://stackoverflow.com/questions/3163193/strict-json-parsing-with-googles-gson