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