[转]Android解析json数据
1、json格式
{"students":[{"sid":1001,"name":"zhangsan","addr":"Yichang","pic":"111.jpg"}, {"sid":1002,"name":"Jack","addr":"Beijing","pic":"222.jpg"}]}
{[{"sid":1001,"name":"zhangsan","addr":"Yichang","pic":"111.jpg"}, {"sid":1002,"name":"Jack","addr":"Beijing","pic":"222.jpg"}]}
Student stu = new Student(1005,"张三","Wuhan","zs.jpg");
JSONObject jsonObject = new JSONObject(stu);
JSONObject jsonObject = new JSONObject(str);
Iterator<String> iterator = jsonObject.keys();
Student stu = new Student();
while(iterator.hasNext()){
//可以利用java反射,写泛型方法
String key = iterator.next();
if(key.equals("sid")){
stu.setSid(jsonObject.getInt(key));
}
if(key.equals("name")){
stu.setName(jsonObject.getString(key));
}
if(key.equals("sid")){
stu.setAddr(jsonObject.getString(key));
}
if(key.equals("sid")){
stu.setPic(jsonObject.getString(key));
}
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("zs", stu);
同样jsonObject.toString()就是字符串输出 {"zs":"{sid:1005, name:张三, addr:Wuhan, pic:zs.jpg}"}。要注意,如果Student没有覆写toString()方法,输入的是:{"zs":"org.itair.domain.Student@2666e815"}
Student s1 = new Student(1001,"zhangsan","yichang","111");
Student s2 = new Student(1002,"Jack","Beijing","222");
List<Student> stus = new ArrayList<Student>();
stus.add(s1);
stus.add(s2);
JSONArray array = new JSONArray(stus);
array的字符串是:[{"sid":1001,"name":"zhangsan","addr":"yichang","pic":"111"},{"sid":1002,"name":"Jack","addr":"Beijing","pic":"222"}]
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject2 = jsonArray.getJSONObject(i);
//解析成特定的对象操作,new对象,从jsonObject2取出值来装进去
Iterator<String> iterator = jsonObject2.keys();
while (iterator.hasNext()) {
String key = iterator.next();
Object value = jsonObject2.get(key);
map.put(key, value);
}
}
Student s2 = new Student(1002,"Jack","Beijing","222");
List<Student> stus = new ArrayList<Student>();
stus.add(s1);
stus.add(s2);
JSONObject jsonObject = new JSONObject();
jsonObject.put("students", stus);
jsonObject的字符串:{"students":[{"sid":1001,"name":"zhangsan","addr":"yichang","pic":"111"},{"sid":1002,"name":"Jack","addr":"Beijing","pic":"222"}]}
JSONArray jsonArray = jsonObject.getJSONArray("key");//key就是上面放入的students
在Android的项目中,一般不会把Json字符串解析成对象的集合,而多是解析成List<Map<String,Object>>
List<Map<String,Object>> list = new ArrayList<Map<String ,Object>>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject2 = jsonArray.getJSONObject(i);
Map<String ,Object> map = new HashMap<String, Object>();
Iterator<String> iterator = jsonObject2.keys();
while (iterator.hasNext()) {
String key = iterator.next();
Object value = jsonObject2.get(key);
map.put(key, value);
}
list.add(map);
}
要解析成对象集合,还是用Gson, fastjson比较方便。
[转]Android解析json数据的更多相关文章
- Android解析Json数据之Gson解析
Gson是谷歌官方提供的解析json数据的工具类.json数据的解析能够使用JSONObject和JSONArray配合使用解析数据,可是这样的原始的方法对于小数据的解析还是有作用的,可是陪到了复杂数 ...
- Android解析json数据
Json数据 [{"code":"110000","sheng":"11","di":"0 ...
- android基础---->JSON数据的解析
上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...
- Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
- Android系列---JSON数据解析
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...
- Android 之 json数据的解析(jsonReader)
json数据的解析相对而言,还是比较容易的,实现的代码也十分简单.这里用的是jsonReade方法来进行json数据解析. 1.在解析之前,大家需要知道什么是json数据. json数据存储的对象是无 ...
- Android网络之数据解析----使用Google Gson解析Json数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Android的JSON数据解析
一. 使用原生方式解析 准备工作:准备一个布局文件,用来显示元数据与转换之后的数据 <?xml version="1.0" encoding="utf-8" ...
- Android 之JSON数据解析
(以下基本都是郭霖大神<第一行代码>中的知识) JSON数据与xml相比,优势在于体积更小,传输所需的流量少.但是缺点也很明显,就是语义性较差. 下面是一组JSON格式的数据. [{&qu ...
随机推荐
- SprimgMVC学习笔记(八)—— SpringMVC与前台json数据交互
一.两种交互形式 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种就是在url的末尾传普通的key/value串过来,针对这两种方式,在Controller类中会有不同的解析, ...
- windows 中使用 winscp 工具连接linux
1.安装winscp 2.在linux系统中安装ssh,执行命令:sudo apt-get install openssh-server 3.连接成功
- 江西财经大学第一届程序设计竞赛 H
链接:https://www.nowcoder.com/acm/contest/115/H来源:牛客网 题目描述 晚上,小P喜欢在寝室里一个个静静的学习或者思考,享受自由自在的单身生活. 他总是能从所 ...
- Oracle 树形SQL语句,SYS_CONNECT_BY_PATH 函数
转一个SYS_CONNECT_BY_PATH 函数的例子.推断原表应该是这样: Child Parent ------------------------ ...
- linux 学习2 (基于ubuntu)
一.远程管理命令 关机/重启 shutdown reboot(重启) halt(直接关机) 查看或配置网卡信息 ifconfig ping 远程登录和复制文件 ssh ping 1. 关机/重 ...
- n阶乘,位数,log函数,斯特林公式
一.log函数 头文件: #include <math.h> 使用: 引入#include<cmath> 以e为底:log(exp(n)) 以10为底:log10(n) 以m为 ...
- PHP、thinkPHP5.0开发网站文件管理功能(四)下载文件
public function download($currdir = null){ $file = urldecode($currdir); $file = iconv('UTF-8', " ...
- 更新jdk
1.从官网下载jdk-8u191-linux-x64.tar.gz,然后放在ubuntu里的Downloads文件夹里.然后解压到/usr/lib/jvm文件夹中. sudo tar -zxvf Do ...
- Troubleshooting ORA-201 and ORA-202 Error
---- 3. When lowering the value of COMPATIBLE: You cannot start the database with lower compatibilit ...
- Jenkins遇到哪些坑~
1Jenkins关闭和重启实现方式. 1.关闭Jenkins 只需要在访问jenkins服务器的网址url地址后加上exit.例如我jenkins的地址http://localhost:8080/ ...