Android开发: JSONObject的数据解析

第一种数据解析方法

1.请求的字符串如图



在这之前先导入这两个包

import org.json.JSONException;

import org.json.JSONObject;

   

根据returnCode是否为0来判断登录有没有成功,如果输出日志,“登录成功”那就表示这个JSON数据已经解析成功了

这里的response就是需要解析的JSAON数据





第二种是接下来是包含JSONArray的数据解析




public   static ArrayList<String>arraylist = new ArrayList<String>();

public   static ArrayList<String>channelTagList = new ArrayList<String>();


public static JSONArray channelNameList= new JSONArray();

public static int count;

try{

JSONObject channellist = new JSONObject(response);//转换为JSONObject  

channelNameList = channellist.getJSONArray("receivedChannel");//获取JSONArray 

Log.i("第一条日志",channelNameList.getJSONObject(0).toString());

count=channelNameList.length();

String channelname1 = channelNameList.getJSONObject(0).getString("channelName");

Log.i("第二条日志", channelname1);


         

            for(int i=0;i<count;i++){

            //将name和tag数据存入动态数组内

          arraylist.add(channelNameList.getJSONObject(i).getString("channelName").toString());

          channelTagList.add(channelNameList.getJSONObject(i).getString("channelTag").toString());

            }

         

}

/*  第一个日志输出结果为

            05-26 19:02:59.475: I/receivedChannel(6253): 

            {"channelTag":"1430473934597","channelId":"1","channelName":"教务处"}

           

第二个日志输出结果为

            05-26 19:02:59.475: I/channelName(6253): 教务处*/

catch (JSONException e) {

throw new RuntimeException(e);

}


第三种


规范json串的解析格式

 public Object getObjectFromData(String key, Class c) {
        JSONObject object = JSON.parseObject(JSON.toJSONString(data));
        return JSON.parseObject(JSON.toJSONString(object.get(key)), c);
    }


设置一个MarginInfor的bean对象
MarginInfo marginInfo = (MarginInfo) jsonBean.getObjectFromData("freeResource", MarginInfo.class);
获取对象内容为

listener.sendMarginShow(marginInfo.getFlowTotalNum(),marginInfo.getFlowRemainNum(),
                                marginInfo.getVoiceTotalNum(),marginInfo.getVoiceRemainNum(),
                                marginInfo.getMessageTotalNum(),marginInfo.getMessageRemainNum() );

对象里面均为set和get方法

package com.ailk.hodo.android.bean;

/**
 * Created by apple on 16/6/11.
 */
public class MarginInfo {
    private String flowTotalNum;
    private String flowRemainNum;
    private String voiceTotalNum;
    private String voiceRemainNum;
    private String messageTotalNum;
    private String messageRemainNum;


    public String getFlowTotalNum() {
        return flowTotalNum;
    }

    public void setFlowTotalNum(String flowTotalNum) {
        this.flowTotalNum = flowTotalNum;
    }

    public String getFlowRemainNum() {
        return flowRemainNum;
    }

    public void setFlowRemainNum(String flowRemainNum) {
        this.flowRemainNum = flowRemainNum;
    }

    public String getVoiceTotalNum() {
        return voiceTotalNum;
    }

    public void setVoiceTotalNum(String voiceTotalNum) {
        this.voiceTotalNum = voiceTotalNum;
    }

    public String getVoiceRemainNum() {
        return voiceRemainNum;
    }

    public void setVoiceRemainNum(String voiceRemainNum) {
        this.voiceRemainNum = voiceRemainNum;
    }

    public String getMessageTotalNum() {
        return messageTotalNum;
    }

    public void setMessageTotalNum(String messageTotalNum) {
        this.messageTotalNum = messageTotalNum;
    }

    public String getMessageRemainNum() {
        return messageRemainNum;
    }

    public void setMessageRemainNum(String messageRemainNum) {
        this.messageRemainNum = messageRemainNum;
    }
}





猜你喜欢

转载自blog.csdn.net/ice_tum15/article/details/46276131
今日推荐