在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;
}

Android编程心得-JSON使用心得(二)的更多相关文章

  1. Android编程心得-在任意类中获取当前屏幕宽高

    进行Android编程时,很多时候都需要获取当前屏幕的宽度与高度,但是当我们需要在别的类中调用屏幕宽高时,直接用原来的方法是不行的,下面我来介绍如何在任意类中调用宽度高度的两种方法. public v ...

  2. 《Android编程权威指南》

    <Android编程权威指南> 基本信息 原书名:Android programming: the big nerd ranch guide 原出版社: Big Nerd Ranch Gu ...

  3. Android Volley获取json格式的数据

    为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...

  4. Android PHP 通过JSON进行数据交互

    一.首先是Android客户端解析PHP返回的JSON数据 1.PHP代码(这里用到了数据库,如果没有准备数据库的话,可以自定义字符串) <?php $link=mysql_connect(SA ...

  5. Android BLE与终端通信(二)——Android Bluetooth基础科普以及搜索蓝牙设备显示列表

    Android BLE与终端通信(二)--Android Bluetooth基础搜索蓝牙设备显示列表 摘要 第一篇算是个热身,这一片开始来写些硬菜了,这篇就是实际和蓝牙打交道了,所以要用到真机调试哟, ...

  6. 《Android编程权威指南》PhotoGallery应用梳理

    PhotoGalley是<Android编程权威指南>书中另外一个重要的应用.       

  7. Android编程权威指南第三版 第32章

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_35564145/article/de ...

  8. 读《Android编程权威指南》

    因为去年双十二购买了一折的<Android 编程权威指南(第一版)>,在第二版出来后图灵社区给我推送了第二版的优惠码,激动之余就立马下单购买电子书,不得不说Big Nerd Ranch G ...

  9. 菜鸟学Android编程——简单计算器《一》

    菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...

随机推荐

  1. Mysql 索引的基础(上)

    要理解Mysql 中索引是如何工作的,最简单的方法是去看一看书的"索引部分":如果想在一本书中找到某个特定的主题,一般先看书的"索引",找到对应的页码. 在My ...

  2. linux 常用压缩工具快速指南

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压 ...

  3. 关于uC/OS的简单学习(转)

    1.微内核 与Linux的首要区别是,它是一个微内核,内核所实现的功能非常简单,主要包括: 一些通用函数,如TaskCreate(),OSMutexPend(),OSQPost()等. 中断处理函数, ...

  4. GO的MAP字典简单用法示例

    package main import "fmt" type PersonInfo struct { ID string Name string Address string } ...

  5. 【Xamarin开发 Android 系列 8】 创建一个Json读取数据应用(上)

    后续将内容贴上来...........

  6. Qt error:QtThese QT version are inaccessible

    安装完Qt Add-in 打开VS2013的时候出现标题错误. QTDIR 需要设置成Qt安装目录下的vc,这个vc目录下包含include,lib,bin等文件夹.或者是在Qt Option里面设置 ...

  7. Oracle优化笔记

    2016-11-22   子查询:标量子查询 内联视图(in-line view) 半连接/反连接   标量子查询 select 后跟子查询 类似自定义函数 可用开窗函数之类的改写   内联视图(in ...

  8. 【剑指offer】面试题39:二叉树的深度

    题目: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 思路: 根的深度=MAX(左子树深度,右子树深度)+1; Code: ...

  9. ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha

    ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算 ...

  10. art.dialog

    关闭指定弹出窗: art.dialog({ id: 'hetong' }).close(); 关闭所有的iframe弹出窗,art.dia.close();