84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
欢迎选择我的课程,让我们一起见证您的进步~~
直接用反射检测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