java解析json格式的数据

有时候可能会用到json格式进行数据的传输,那么怎么把接收到的数据解析出来呢?下面介绍两种解析json数据的方法:

       1、通过谷歌的Gson来进行解析:
json数据:sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{surveyid":"2","surveyname":"C"}]};

两个VO类:

public class SurveyVO {

    private String surveyId;
    private String surveyName;
    private String message;
    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
       this.message = message;
    }
    public String getSurveyId() {
        return surveyId;
    }
    public void setSurveyId(String surveyId) {
        this.surveyId = surveyId;
    }
    public String getSurveyName() {
        return surveyName;
    }
    public void setSurveyName(String surveyName) {
        this.surveyName = surveyName;
    }
}
public class SurveyListVO {
    private String message;
    private List<SurveyVO> result;
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public List<SurveyVO> getResult() {
        return result;
    }
    public void setResult(List<SurveyVO> result) {
        this.result = result;
    }    
}

json格式转换成object类型:

public class fromGson() {
        sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{"surveyid":"2","surveyname":"C"}]};

        Gson gson = new Gson();
        SurveyListVO surveyListVO = gson.fromJson(sTotalString,

                                    SurveyListVO.class);

        for (int i = 0; i < surveyListVO.getResult().size(); i++) {

            System.out.print(surveyListVO.getResult().get(i)

                             .getSurveyId());

            print: 12

            System.out.print(surveyListVO.getResult().get(i)

                             .getSurveyName());

            print: B///C

            System.out.print(surveyListVO.getMessage());

        }

    }




      2、通过json-org.jar包进行解析:
json数据:sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{surveyid":"2","surveyname":"C"}]};

一个VO类:

public class SurveyVO {

    private String surveyId;

    private String surveyName;

    public String getSurveyId() {

        return surveyId;

    }

    public void setSurveyId(String surveyId) {

        this.surveyId = surveyId;

    }

    public String getSurveyName() {

        return surveyName;

    }

    public void setSurveyName(String surveyName) {

        this.surveyName = surveyName;

    }

}



 

json格式转换成object类型:

public class fromJson() {

        sTotalString = {"message":"success","result":[{"surveyid":"1","surveyname":"B"}{"surveyid":"2","surveyname":"C"}]};

        JSONObject json;



        try {

            json = new JSONObject(sTotalString);

            JSONArray results = json.getJSONArray("result");

            for (int i = 0; i < results.length(); i++) {

                SurveyVO surveyVO = new SurveyVO();

                JSONObject result = results.getJSONObject(i);

                System.out.println(result.getString("surveyId")+" "+result.getString("surveyName"));

                surveyVO.setSurveyId(result.getString("surveyId"));

                surveyVO.setSurveyName(result.getString("surveyName"));

                surveyVOList.add(surveyVO);

            }

        } catch (JSONException e) {

            e.printStackTrace();

        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值