对于解析复杂的json字符串成java bean的解决方法,有阿里提供的FastJson和Google提供的Gson两个方法进行解析,在编写java bean的时候会稍微注意一下,因为会有一些坑。
首先,如果解析嵌套的json成嵌套的java bean ,那么如果你用Gson可以直接正常定义内层class,但如果你用的是FastJson,请为内层class加上static关键字,否则会出现“com.alibaba.fastjson.JSONException: create instance error…”异常。详见友友的文章。
再次,两者为java bean的字段赋值的方法不同,初步认为FastJson是通过setter方法为字段赋值的,Gson是通过反射机制为字段赋值的。此结论有待考证,但是FastJson这个是对的,因为我在项目中尝试过在setter方法中为另外的字段赋值,并且成功了。对于Gson的内部机制,如有大神已经考证,望留言补充。