刚刚发现fastjson一个优点,当字段名没有加引号时也可以解析
场景:阿里的根据号码查询详情的接口https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=
返回的json不规范:
jackson会报异常:Unexpected character (‘m’ (code 109)): was expecting double-quote to start field name
即提示应以双引号作为字段名的开头
而fastjson则可以成功解析
**原因:**这种形式不是JSON规范,只有JS支持。Jackson默认不支持,需要手动设置JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES = true
2、解析多层json
例json:{“code”:“10000”,“charge”:false,“remain”:0,“msg”:“查询成功”,“result”:{“Status”:“Success”,“MsgID”:“0416210526639048”,“MsgInfo”:“提交成功”,“ExRecords”:“1”,“ExMoney”:“0.04”}
要取result的Status值,要先获得result的json对象,再获取Status的值,不能直接通过jsonObject.getString(“Status”)获取Status的值。jsonObject.getJSONObject(“result”).getString(“Status”);