java 使用gson包读取json格式数据

//声明一个HashMap数组存放多个"{}"对象
  HashMap[] ipsMap=new HashMap[1000000];
  
  int jsonn=0;//用于计数需要插入的记录条数
  //jsonName是一个json格式的字符串
  String jsons;
        int jsonlength=jsonName.length();
        for(int i=0;i<=jsonlength;){
         int start=jsonName.indexOf("{", i);
         int end=jsonName.indexOf("}",i);
         i=end+1;
         if(start!=-1){
          jsons= jsonName.substring(start, end+1).trim();
             ipsMap[jsonn] = new Gson().fromJson(jsons, new TypeToken<HashMap<String, String>>(){}.getType());
                jsonn++;
     
         }else{
          break;
         }
        }
       
        if(jsonn == 0)//地址输入不规范,提示用户手动输入匹配地址
        {
         System.out.println("地址输入不规范,请重新输入!");
        }
        else if(jsonn>0 && jsonn<=1)//地址输入规范,且只有一个坐标
        { 
         if((!ipsMap[0].get("m_YField").toString().equals("")) && (!ipsMap[0].get("m_XField").toString().equals("")) )
         {
          ZaibaoInfo zi = new ZaibaoInfo();
          
          zi.setAddress(addressName);
          zi.setX_point(ipsMap[0].get("m_XField").toString());
          zi.setY_point(ipsMap[0].get("m_YField").toString());
          zi.setExt_attr1("1");
          azlst.add(zi);
          
         }
         else
         {
          System.out.println("您输入的地址有误,请重新输入!!!");
         }           
        }
        else if(jsonn > 1)//地址输入正确,但是有多条记录
        {
         for (int j = 0; j < jsonn; j++)
         {
          
          if((!ipsMap[j].get("m_YField").toString().equals("")) &&
            (!ipsMap[j].get("m_XField").toString().equals(""))&&
            (!ipsMap[j].get("m_MatchMemoField").toString().equals("")))
          {
           ZaibaoInfo zi = new ZaibaoInfo();
           zi.setAddress(ipsMap[j].get("m_MatchMemoField").toString());
           zi.setX_point(ipsMap[j].get("m_XField").toString());
           zi.setY_point(ipsMap[j].get("m_YField").toString());
                    zi.setExt_attr1(String.valueOf(jsonn));
           aulst.add(zi); 
          }
      }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值