日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

使用FastJson解析时有关内部类的两个问题

發(fā)布時(shí)間:2024/4/15 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用FastJson解析时有关内部类的两个问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、內(nèi)部類層次結(jié)構(gòu)不對(duì)

假設(shè)有一個(gè)model類,代碼如下: public class Model {public Data data;public class Data {public List<Row> rows;}public class Row{} } 注意雖然rows是Data的一個(gè)變量,但是類Row卻是與Data同一層次,都是Model類的內(nèi)部類。 這時(shí)如果需要解析的json如下: {"code":0,"data":{"pageSize":20,"rows":[{"id":13}]} } 使用FastJson進(jìn)行解析的時(shí)候就會(huì)報(bào)出如下錯(cuò)誤: Exception in thread "main" com.alibaba.fastjson.JSONException: create instance error, class com.example.testand.Model$Ds at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.createInstance(JavaBeanDeserializer.java:89) . . at com.example.testand.Demo.main(Demo.java:24) Caused by: java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) . . at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.createInstance(JavaBeanDeserializer.java:86) ... 16 more 將Row改成Data的內(nèi)部類就會(huì)解決這一問題,代碼如下: public class Model {public Data data;public class Data {public List<Row> rows;public class Row{}} }
?

2、直接用內(nèi)部類解析

同樣假設(shè)有一個(gè)model類,代碼如下: public class Model {public Data data;public class Data {public List<Row> rows;public class Row{}} }
? 這時(shí)假設(shè)有一組Json數(shù)據(jù),如下: {"rows" : [{"id" : 1}] } 如果我們使用下面的代碼去解析數(shù)據(jù) Data data = JSON.parseObject(jsonStr, Data.class); 同樣會(huì)報(bào)錯(cuò): Exception in thread "main" com.alibaba.fastjson.JSONException: create instance error, class com.example.testand.Model$Data at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.createInstance(JavaBeanDeserializer.java:89) . . at com.example.testand.Demo.main(Demo.java:25) Caused by: java.lang.NullPointerException at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.createInstance(JavaBeanDeserializer.java:86) ... 7 more 這是因?yàn)橹苯邮褂昧藘?nèi)部類去解析json。 我們知道一個(gè)非靜態(tài)內(nèi)部類,是不能直接進(jìn)行實(shí)例化,如: Model.Data data = new Model.Data() 編譯會(huì)出錯(cuò),如果我們想實(shí)例化非靜態(tài)內(nèi)部類,則必須要有一個(gè)外部類的實(shí)例,如: Model model = new Model(); Model.Data data = model.new Date(); 這樣就解釋了為什么上面的做法會(huì)出錯(cuò),因?yàn)镕astJson解析數(shù)據(jù)時(shí)會(huì)直接創(chuàng)建內(nèi)部類Data的實(shí)例。 正確的方式是將Data類單獨(dú)作為一個(gè)類,而不是內(nèi)部類,如下: model類 public class Model {public Data data; } data類 public class Data {public List<Row> rows;public class Row{} }

?

總結(jié)

以上是生活随笔為你收集整理的使用FastJson解析时有关内部类的两个问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99久久精品免费看国产免费软件 | 天堂中文字幕av | 天天射夜夜骑 | 青青草在线视频免费观看 | 少妇高潮一区二区三区在线 | 欧美三级午夜理伦三级 | 久久av片| 浪漫樱花动漫在线观看免费 | 成人区人妻精品一熟女 | 公交顶臀绿裙妇女配视频 | 日韩精品一区二区三区色欲av | 色播99 | 美女日批在线观看 | 你操综合 | 香蕉av一区二区 | 国产精品久久久久无码av | 教练含着她的乳奶揉搓揉捏动态图 | 蜜桃久久久久久 | 国产午夜精品久久久久久久久久 | 自拍超碰 | 欧美日韩色综合 | 手机成人在线视频 | 99热91| 你懂的在线观看视频 | 婷婷网五月天 | 高跟鞋和丝袜猛烈xxxxxx | 露胸app| jizz日本免费 | 亚洲乱码一区二区三区在线观看 | 91丝袜国产在线观看 | 欧美三级大片 | 免费视频黄色 | 中文字幕一区二区三区四区免费看 | 一级片中文 | 欧美午夜在线 | 影音先锋中文字幕第一页 | 欧美阿v | 国产色婷婷一区二区三区竹菊影视 | 国产在线精品一区二区 | 色综合激情网 | 日韩精品一区二区三区丰满 | 国产尻逼视频 | 四虎影院在线视频 | 国产毛片精品国产一区二区三区 | 欧美中文字幕在线观看 | 好男人www日本 | 国产精品二区在线观看 | 五十路在线 | 婷婷综合影院 | 一区二区三区av夏目彩春 | 亚洲成人黄色小说 | 久久精品噜噜噜成人88aⅴ | 欧美亚州| 丰满少妇乱子伦精品看片 | 日本美女一区二区三区 | 国产成人午夜视频 | 色婷婷aⅴ | 日韩在线www| 欧美日韩高清一区二区三区 | 亚洲av无码一区二区三区观看 | 欧美日韩免费一区二区 | 高清一区二区三区视频 | av女星全部名单 | 毛片av在线观看 | 人人超碰人人 | 高清精品xnxxcom | 日本老熟妇乱 | 久久奇米| 蜜臀麻豆| 97免费超碰| 91福利在线导航 | 中文字幕精品一二三四五六七八 | 日日干日日草 | 在线看成人 | 免费中文字幕视频 | 亚洲乱码在线 | 成人免费福利视频 | 9久9久9久女女女九九九一九 | 永久免费的av网站 | 污网站免费看 | 欧美性xxxxx 亚洲特黄一级片 | 看个毛片 | 国产黄色www | 91麻豆产精品久久久久久 | 1024精品一区二区三区日韩 | 综合网在线视频 | 免费激情网| 亚洲激情一区二区三区 | 欧美xxxxx牲另类人与 | 噜噜噜亚洲色成人网站 | 91精品入口| 亚洲欧美国产精品专区久久 | 伊人网成人 | 久伊人 | 欧美人在线 | 色就是色亚洲色图 | 成人区人妻精品一区二 | 爆操老女人 | 欧美亚洲图片小说 |