4
当json 的属性名为数字并且数值过大时(超过integer.max_value),直接使用JsonPath表达式解析报错。 错误信息: java.lang.NumberFormatException: For input string: "1234567899999" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:495) at java.lang.Integer.parseInt(Integer.java:527)
测试例子: public static void main(String[] args) { //正常解析 String json1 = "{"articles":{"2147483647":{"XXX":"xiu"}}}"; String path1 = "$.articles.2147483647.XXX"; Object read = JSONPath.read(json1, path1);
//报错
String json2 = "{\"articles\":{\"2147483648\":{\"XXX\":\"xiu\"}}}";
String path2 = "$.articles.2147483648.XXX";
Object read2 = JSONPath.read(json2, path2);
}