关于Gson-2.4(自己犯得错误)
来源:互联网 发布:arch linux 龙芯 编辑:程序博客网 时间:2024/06/11 17:18
今天没事,想复习下json的用法,巩固下知识,可是遇到了奇葩问题。
1:关于json数据解析成java实体类
第一步要解析成Java实体类,这里用的http://www.bejson.com/json2javapojo/ 工具,还是很实用的,可是有一点,有对象嵌套多层时,解析出来的类就会出现问题,自动解析的java类里面属性都是String类型的,需要自己手动修改成实际的对象类型;
2:关于okHttp
我用的okHttp做的网络请求,然后用response.body().string(); 获得json字符串,打印出来没问题,可是在okHttp内部做Gson处理就会出错,报错是Expected BEGIN_OBJECT but was String at...,我打印出来看到字符串是正确的,而且我检查过了自己改好的javaBean类是没问题的。
3:最后我干脆将打印出来的json字符串复制出来粘贴到一个自定义的String中,发现了问题:
原字符串:{"weatherinfo":{"city":"北京","city_en":"beijing","date_y":"2015年6月18日","date":"","week":"星期四","fchh":"11","cityid":"101010100","temp1":"32℃~19℃","temp2":"28℃~17℃","temp3":"32℃~20℃","temp4":"32℃~21℃","temp5":"31℃~20℃","temp6":"33℃~21℃","tempF1":"89.6℉~66.2℉","tempF2":"82.4℉~62.6℉","tempF3":"89.6℉~68℉","tempF4":"89.6℉~69.8℉","tempF5":"87.8℉~68℉","tempF6":"91.4℉~69.8℉","weather1":"多云转雷阵雨","weather2":"雷阵雨转晴","weather3":"晴","weather4":"多云","weather5":"多云转晴","weather6":"晴转多云","img1":"1","img2":"4","img3":"4","img4":"0","img5":"0","img6":"99","img7":"1","img8":"99","img9":"1","img10":"0","img11":"0","img12":"1","img_single":"1","img_title1":"多云","img_title2":"雷阵雨","img_title3":"雷阵雨","img_title4":"晴","img_title5":"晴","img_title6":"晴","img_title7":"多云","img_title8":"多云","img_title9":"多云","img_title10":"晴","img_title11":"晴","img_title12":"多云","img_title_single":"多云","wind1":"北风3-4级转微风","wind2":"微风","wind3":"微风","wind4":"微风","wind5":"微风","wind6":"微风","fx1":"北风","fx2":"微风","fl1":"3-4级转小于3级","fl2":"小于3级","fl3":"小于3级","fl4":"小于3级","fl5":"小于3级","fl6":"小于3级","index":"炎热","index_d":"天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。","index48":"","index48_d":"","index_uv":"中等","index48_uv":"","index_xc":"不宜","index_tr":"适宜","index_co":"较不舒适","st1":"31","st2":"17","st3":"25","st4":"18","st5":"31","st6":"21","index_cl":"较适宜","index_ls":"适宜","index_ag":"不易发"}}
粘贴进字符串符号“ ”中后变成: root = gson.fromJson("{\"weatherinfo\":{\"city\":\"北京\",\"city_en\":\"beijing\",\"date_y\":\"2015年6月18日\",\"date\":\"\",\"week\":\"星期四\",\"fchh\":\"11\",\"cityid\":\"101010100\",\"temp1\":\"32℃~19℃\",\"temp2\":\"28℃~17℃\",\"temp3\":\"32℃~20℃\",\"temp4\":\"32℃~21℃\",\"temp5\":\"31℃~20℃\",\"temp6\":\"33℃~21℃\",\"tempF1\":\"89.6℉~66.2℉\",\"tempF2\":\"82.4℉~62.6℉\",\"tempF3\":\"89.6℉~68℉\",\"tempF4\":\"89.6℉~69.8℉\",\"tempF5\":\"87.8℉~68℉\",\"tempF6\":\"91.4℉~69.8℉\",\"weather1\":\"多云转雷阵雨\",\"weather2\":\"雷阵雨转晴\",\"weather3\":\"晴\",\"weather4\":\"多云\",\"weather5\":\"多云转晴\",\"weather6\":\"晴转多云\",\"img1\":\"1\",\"img2\":\"4\",\"img3\":\"4\",\"img4\":\"0\",\"img5\":\"0\",\"img6\":\"99\",\"img7\":\"1\",\"img8\":\"99\",\"img9\":\"1\",\"img10\":\"0\",\"img11\":\"0\",\"img12\":\"1\",\"img_single\":\"1\",\"img_title1\":\"多云\",\"img_title2\":\"雷阵雨\",\"img_title3\":\"雷阵雨\",\"img_title4\":\"晴\",\"img_title5\":\"晴\",\"img_title6\":\"晴\",\"img_title7\":\"多云\",\"img_title8\":\"多云\",\"img_title9\":\"多云\",\"img_title10\":\"晴\",\"img_title11\":\"晴\",\"img_title12\":\"多云\",\"img_title_single\":\"多云\",\"wind1\":\"北风3-4级转微风\",\"wind2\":\"微风\",\"wind3\":\"微风\",\"wind4\":\"微风\",\"wind5\":\"微风\",\"wind6\":\"微风\",\"fx1\":\"北风\",\"fx2\":\"微风\",\"fl1\":\"3-4级转小于3级\",\"fl2\":\"小于3级\",\"fl3\":\"小于3级\",\"fl4\":\"小于3级\",\"fl5\":\"小于3级\",\"fl6\":\"小于3级\",\"index\":\"炎热\",\"index_d\":\"天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。\",\"index48\":\"\",\"index48_d\":\"\",\"index_uv\":\"中等\",\"index48_uv\":\"\",\"index_xc\":\"不宜\",\"index_tr\":\"适宜\",\"index_co\":\"较不舒适\",\"st1\":\"31\",\"st2\":\"17\",\"st3\":\"25\",\"st4\":\"18\",\"st5\":\"31\",\"st6\":\"21\",\"index_cl\":\"较适宜\",\"index_ls\":\"适宜\",\"index_ag\":\"不易发\"}}", Mroot.class);
然后解析就成功了,怀疑就是这里出现了问题,直接得到的字符串不能转换成gson能够识别的格式,具体可以用
String b=a.replace("“", "\\\”");尝试更改,还是失败,最后还是改成初始的程序就成功了,
可能是电脑太卡导致的clean不及时吧,真是醉了。
第一篇博客没什么营养,为了养成个好习惯,加油!
- 关于Gson-2.4(自己犯得错误)
- 好纠结,自己犯得错误
- 关于for循环的一个初学者易犯得错误。
- 最容易犯得错误
- 自己犯的错误
- C--日常犯得傻逼错误(持续更新)
- 记录自己犯的错误。
- 使用div犯得愚蠢的错误
- hashtable使用时犯得愚蠢错误
- Shell脚本容易犯得错误记录
- 【c++程序】引用容易犯得错误
- c++初学可能犯得两个错误
- 程序员最容易犯得错误
- 最近犯得脑残错误
- 使用0和false犯得错误
- datagrid toolbar犯得一大错误
- 新人常犯的错误(留给自己看)
- 同样的错误不能犯两次(六):逼迫自己
- ios可视化编程 UI高级 UI_13
- U-Boot命令--制作自己的U-Boot菜单(一)
- io_file
- C++编程对缓冲区的理解
- 黑马程序员——OC基础---构造方法
- 关于Gson-2.4(自己犯得错误)
- Unity3D占用内存太大的解决方法
- iOS程序猿如何快速掌握 PHP,化身"全栈攻城狮"?
- Ubuntu下mysql无法重启
- TEST 1#
- 二分查找
- C/C++常用宏定义
- Form表单中的action提交路径问题
- C++中struct和class的区别