Json字符串对象解析

来源:互联网 发布:centos squid安装配置 编辑:程序博客网 时间:2024/06/02 00:30

场景:Java开发时,很多对外接口,无论是java,php等,提供的数据通过json传递。

如何调用接口后,快速处理json数据,存储到数据库。

本文:需引入json-lib-2.4-jdk15.jar

以接口json字符为

[

{

"name":"张三",

"sex":"男",

"age":"22"

},

{

"name":"赵一",

"sex":"男",

"age":"23"

}

]

--------------------------------以下为Vo类-------------------------------------

定义Vo类

/*

* 人员Vo

*/

public class PersonVo{

      private String name;

      private String sex;

      private String age;

      public String getName(){

            return name;

     }

     public void setName(String name){

           this.name=name;

     }

      public String getName(){

            return name;

     }

     public void setSex(String sex){

           this.sex=sex;

     }


      public String getAge(){

            return age;

     }

     public void setAge(String age){

           this.age=age;

     }

}

--------------------------------以下为处理类-------------------------------------

代码引入
import net.sf.json.JSONArray; 
import com.test.PersonVo;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class PersonTask{
      public void dealJson(){
        try{
           //请求参数
          Map<String, Object> params = new HashMap<String, Object>();
          params.put("startdate",“2017-01-01”);
          params.put("enddate",“2017-01-31”);
          List<PersonVo> voList = new ArrayList<PersonVo>();
          //接口服务地址
          String portUrl =“对方地址”;
          //1.传递参数获取接口json对象字符
          String resultMsg = HttpClient.sendByPost1(portUrl, params, "utf-8");
          //2.判断获取数据是否为空,不为空就格式化为对象
  if (null != resultMsg && !"0".equals(resultMsg)&& !resultMsg.equals("false") && !resultMsg.equals("无数据")) {
JSONArray json = JSONArray.fromObject(resultMsg);
                        //3.映射json属性到vo类属性
                      voList = (List<PersonVo>)JSONArray.toCollection(json, PersonVo.class);
  }
         PersonVo vo = new PersonVo();
         //4.循环获取vo对象属性,注意vo对象属性与json对象属性必须一致,大小写也有区分。
         for(int i=0;i<voList.size();i++){
              vo=voList.get(i);
              system.out.println( ”姓名:“+vo.getName());
              //5.后续可以set到接收对象,然后存入数据库
         }
       }catch(Exception e){
            //获取异常信息
       }
      }
}
-------------------------------------结束--------------------------------------------

0 0