• Android编程心得-JSON使用心得(二)


    在Android开发中,我们经常会用到JSON来与网络数据进行交互,下面我来介绍如何对JSON数据进行解析与制造

    1.当我们需要对如下JSON串进行制造时:

    {
    "download":["userInfoId","meterNum","rfid","area","clientName","clientAddress"],
    "operatorNum":“操作员编号”
    }


    首先我们分析上面的JSON串  它里面包括download与operatorNum对象。download对象中又包括一个JSON数组,那么首先我们可以将数组的内容按step1向下添加进去

    接下来我们就可以把值放入主要的JSON对象中了(step2),接下来就可以将operatorNum的数据放入JSON对象中(step3),执行到step3时我们的JSON对象已经完成,最后

    只需要将其转化为字符串就可进行使用了(step3).

    	public static String buildDownLoadJson(String operatornum)
    			throws JSONException {
    		JSONArray valueobj1 = new JSONArray();  //step1
    		valueobj1.put("userInfoId");
    		valueobj1.put("meterNum");
    		valueobj1.put("rfid");
    		valueobj1.put("area");
    		valueobj1.put("clientName");
    		valueobj1.put("clientAddress");
    		JSONObject KeyObj1 = new JSONObject();//
    		KeyObj1.put("download", valueobj1);   //step2
    		KeyObj1.put("operatorNum", operatornum);  //step3
    		String jsondata = KeyObj1.toString();    //step4
    		Log.i("JSON", jsondata);
    		return jsondata;
    
    	}




    2.当我们需要解析JSON字符串时  

    {
    "downloadCount":条数值,
    "download":[{"userInfoId":“用户表顺序”,"meterNum":“表号值”,"rfid":"无线编号",
    "area":"小区值","clientName":"客户名称值","clientAddress":”客户地址值”},
    {第2条值, 格式同上},……,{第N条值,格式同上}]
    }


       我们首先同样分析该JSON串,仍然有两个对象,download对象的值仍然是数组,可是与上面制造不同的是,这个里面的数组包括的是多个对象而不是单纯的值,那么这个时

    候我们该怎么办呢? 其实首先我们可以考虑着多个对象的值时相同的,那么我可以定义一个模型类,模型类包括userInfoId,meterNum,rfid,area,clientName,clientAddress等字

    段值(这个类我就不做赘述,相信大家都明白),接下来就是想主Object中添加值(step2 得到了对应的JSON数组),然后就可以将对应的数组遍历取出它们每一个的值放入list

    (step3)



    	public static List<ReadyTask> getList(String key1, String key2,
    			JSONObject obj) {
    		List<ReadyTask> list = new ArrayList<ReadyTask>();//step1
    		try {
    
    			JSONArray jsonArray = obj.getJSONArray(key1); //step2
    
    			int DownloadCount = obj.getInt(key2);
    			Log.d("downloadCount", String.valueOf(DownloadCount));
    
    			for (int i = 0; i < jsonArray.length(); i++) {  //step3
    				String msg1 = jsonArray.getString(i);
    
    				JSONObject value = new JSONObject(msg1);
    				ReadyTask rt = new ReadyTask();
    				rt.setRFID(value.getString("rfid"));
    				rt.setMeterID(value.getString("meterNum"));
    				rt.setArea(value.getString("area"));
    				rt.setClientName(value.getString("clientName"));
    				rt.setClientAddress(value.getString("clientAddress"));
    				rt.setUserInfoId(value.getInt("userInfoId"));
    
    				Log.d("download", msg1);
    
    				list.add(rt);
    			}
    
    		} catch (JSONException e) {
    			e.printStackTrace();
    		}
    		return list;
    	}



  • 相关阅读:
    2020牛客暑期多校训练营(第八场)解题报告
    2020牛客暑期多校训练营(第七场)解题报告
    2020 Multi-University Training Contest 3 解题报告
    2020牛客暑期多校训练营(第五场)解题报告
    2020 Multi-University Training Contest 2 解题报告
    Android应用开发基础 学习笔记(一)
    Java基础:JUC包学习笔记
    Java基础:枚举学习笔记
    Java基础:反射学习笔记
    Java基础:Stream流学习笔记
  • 原文地址:https://www.cnblogs.com/aukle/p/3221606.html
Copyright © 2020-2023  润新知