json解析 JSONObject JSONArray 遇到了float 异常了

1、问题背景

1.解析下面json
{"result":[{"adcd":"17032811121000001","adNm":"奎屯市","countYesd":11.0,"engManCd":"北京奥特美克","estStYm":"2017-06-04 14:22:47","lgtd":11.10000000,"loc":"北京奥特美克","lttd":11.10000000,"stcd":"1111111","stNm":"测试雨量站1","ts":"2017-05-31 14:37:10"},{"adcd":"17032811121000008","adNm":"兵团一三一团","countYesd":22.0,"engManCd":"北京市海淀区","estStYm":"2017-06-02 14:58:44","lgtd":22.00000000,"loc":"北京海淀","lttd":22.00000000,"stcd":"222","stNm":"测试雨量站2","ts":"2017-06-02 14:59:17"},{"adcd":"17032811121000001","adNm":"奎屯市","countYesd":null,"engManCd":"奎屯","estStYm":"2017-06-02 14:58:44","lgtd":84.78595732,"loc":"奎屯","lttd":44.31918123,"stcd":"20105061","stNm":"奎屯河水管站","ts":null},{"adcd":"17032811121000001","adNm":"奎屯市","countYesd":null,"engManCd":"奎屯","estStYm":"2017-06-02 14:58:44","lgtd":84.90324497,"loc":"奎屯","lttd":44.42627155,"stcd":"20105065","stNm":"奎屯市政府","ts":null}],"code":1}
2.分析

本来想用gson来解析,但是总是异常,而且当时我以为是网络问题,因为网络框架的onerror爆错了,后来发现,onsuccess也触发了,后来发现onsuccess中解析错误,才导致了,onerror;
java bean为 HydrologyRainStation

    private String stcd;//测站编码
    private String stNm;//测站名称
    private String engManCd;//管理单位
    private String loc;//所在地(地址)
    private String estStYm;//设站年月
    private String adcd;//行政区编码
    private String adNm;//行政区名称
    private String ts;//监测时间
    private Double lgtd;//测站经度
    private Double lttd;//测站纬度
    private String countYesd;//**原来为Float格式**
3.下面是用gson解析的代码
 Gson gson = new Gson();
                String data = json.getString("result");
                mList.clear();
                try {
                    mList = gson.fromJson(data, new TypeToken<List<HydrologyRainStation>>(){}.getType());

                } catch (Exception e) {
                    LogUtils.e("st","result转bean解析有问题"+e);
                    e.printStackTrace();
                }
4.用JSONArray来解析

下面注释的代码

JSONArray jsonA=json.getJSONArray("result");
for (int i=0;i<jsonA.length();i++){
HydrologyRainStation hrs=new HydrologyRainStation();
JSONObject jsonR= jsonA.getJSONObject(i);
hrs.setAdNm(jsonR.getString("adNm"));
hrs.setAdcd(jsonR.getString("adcd"));
hrs.setEngManCd(jsonR.getString("engManCd"));
hrs.setEstStYm(jsonR.getString("estStYm"));
hrs.setLoc(jsonR.getString("loc"));
hrs.setLgtd(jsonR.getDouble("lgtd"));
hrs.setLttd(jsonR.getDouble("lttd"));
hrs.setCountYesd(String.valueOf(jsonR.get("countYesd")));
hrs.setTs(jsonR.getString("ts"));
hrs.setStNm(jsonR.getString("stNm"));
hrs.setStcd(jsonR.getString("stcd"));
mList.add(hrs);
LogUtils.e("sjt", "size数据为" + mList.size());
                }    

hrs.setCountYesd(String.valueOf(jsonR.get(“countYesd”)));原来
写的,getDouble…想用double转float,疯了
而,没有getFloat,为何
见:JSON巧遇Float,请注意转向

5.发现都有错

关键是result 里有一个值为float
而,javabean里也写的float,Float写string解决

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不对法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值