Json数据

[{"code":"110000","sheng":"11","di":"00","xian":"00","name":"北京市","level":1},
{"code":"659004","sheng":"65","di":"90","xian":"04","name":"五家渠市","level":3},
{"code":"710000","sheng":"71","di":"00","xian":"00","name":"台湾省","level":1},
{"code":"810000","sheng":"81","di":"00","xian":"00","name":"香港特别行政区","level":1},
{"code":"820000","sheng":"82","di":"00","xian":"00","name":"澳门特别行政区","level":1}]

  这里附上一个检查json数据格式是否正确的网站http://www.json.cn/

三种解析方式android自带解析,Gson解析,FastJson解析

1、android自带解析

 

        json_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = getString();
Log.d("txt",s);
List<City> list = new ArrayList<City>();
try {
JSONArray obj = new JSONArray(s);
for(int i=0;i<obj.length();i++){
JSONObject jsonobj = (JSONObject)obj.get(i);
City city = new City();
city.setCode(jsonobj.getString("code"));
city.setSheng(jsonobj.optString("sheng"));
city.setDi(jsonobj.optString("di"));
city.setXian(jsonobj.optString("xian"));
city.setName(jsonobj.optString("name"));
city.setLevel(jsonobj.optInt("level"));
Log.d("txt",city.toString());
textView.append(city.toString());
}
} catch (JSONException e) {
e.printStackTrace();
} }
});

  先获取JSON数组,在解析JsonObject。

2、Gson解析

 Gson_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = getString();
JsonParser parser = new JsonParser();
JsonArray jsonArray = parser.parse(s).getAsJsonArray();
Gson gson = new Gson();
for (JsonElement obj:jsonArray){
City city = gson.fromJson(obj,City.class);
Log.d("txt", city.toString());
textView.append(city.toString());
} }
});
这样也可以
  Gson_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = getString();
City[] lists = new Gson().fromJson(s, City[].class);
for(City city:lists){
Log.d("txt",city.toString());
}
}
});
这样也可以
son_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = getString();
List<City> lists = new ArrayList<City>();
Type type = new TypeToken<ArrayList<City>>(){}.getType();
Gson gson = new Gson();
lists = gson.fromJson(s,type);
for(City city:lists){
Log.d("txt",city.toString());
}
}
});
 

  先获取Json数组,再解析jsonObject。

3、FastJson

 fastjson_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = getString();
Log.d("txt",s);
List<City> lists = JSON.parseArray(s,City.class); for(City city:lists){
textView.append(city.toString());
Log.d("txt",city.toString());
}
}
});

  直接获取JsonArray解析List<Bean>。

  public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray

    public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject

    public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean

    public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray

  public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合

    public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本

    public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本

    public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)

  三种解析方法,个人感觉fastjson使用起来还是很方便的。

Android解析json数据的更多相关文章

  1. Android解析Json数据之Gson解析

    Gson是谷歌官方提供的解析json数据的工具类.json数据的解析能够使用JSONObject和JSONArray配合使用解析数据,可是这样的原始的方法对于小数据的解析还是有作用的,可是陪到了复杂数 ...

  2. [转]Android解析json数据

    1.json格式 2.json解析 3.gson解析 4.fastjson解析 一.Json格式 json一种轻量级的数据交换格式.在网络上传输交换数据一般用xml, json. 两种结构: 1)对象 ...

  3. android基础---->JSON数据的解析

    上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...

  4. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  5. Android系列---JSON数据解析

    您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...

  6. Android 之 json数据的解析(jsonReader)

    json数据的解析相对而言,还是比较容易的,实现的代码也十分简单.这里用的是jsonReade方法来进行json数据解析. 1.在解析之前,大家需要知道什么是json数据. json数据存储的对象是无 ...

  7. Android网络之数据解析----使用Google Gson解析Json数据

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. Android的JSON数据解析

    一. 使用原生方式解析 准备工作:准备一个布局文件,用来显示元数据与转换之后的数据 <?xml version="1.0" encoding="utf-8" ...

  9. Android 之JSON数据解析

    (以下基本都是郭霖大神<第一行代码>中的知识) JSON数据与xml相比,优势在于体积更小,传输所需的流量少.但是缺点也很明显,就是语义性较差. 下面是一组JSON格式的数据. [{&qu ...

随机推荐

  1. 2806 红与黑 个人博客:doubleq.win

    个人博客:doubleq.win 2806 红与黑  时间限制: 1 s  空间限制: 64000 KB  题目等级 : 白银 Silver 题解  查看运行结果     题目描述 Descripti ...

  2. ActiveMQ的用途

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线. ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现. 消息队列的主要作用是为了 ...

  3. Spring与Web整合

    一 概述 1.整合目的 将所有对象的创建与管理任务交给Spring容器,降低程序的耦合度. 2.整合途径 将Spring容器注入到Web容器中. 3.具体实现 使用ServletContextList ...

  4. this keyword details

    学生类: package com.itheima_07; /* * 学生类 * * 起名字我们要求做到见名知意. * 而我们现在的代码中的n和a就没有做到见名知意,所以我要改进. * * 如果有局部变 ...

  5. MUI框架-01-介绍-创建项目-简单页面

    MUI框架-01-介绍-准备-创建项目 从0开始快速高效学习 MUI 框架 官方文档:http://dev.dcloud.net.cn/mui/ui/ (1)MUI 介绍 MUI 是什么,解决了什么问 ...

  6. appium定位安装包启动类名称

    cmd输入:adb logcat > d:/1.txt  然后运行APP,关闭APP,到D盘查找文件1,Ctrl+F,输入LAUNCHER,定位启动类,如下图所示位置 即为,eclipse调用A ...

  7. SVN的正确提交方式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Rundy_Deng/article/details/80338093 也会让我们百思不得其解,甚至耽 ...

  8. Microsoft Azure 微软云平台系列新品发布

    在移动为先,云为先的今天,微软为拥抱云文化的企业提供了技术和工具.利用创新且全面的移动解决方案和开发者工具,微软有独到之处,它帮助所有客户在云为先时代中发现潜在价值. 正如希望加快云创新步伐的你们所期 ...

  9. 基于双下划线的跨表查询 (join查询)

    因为你的数据库中的查询就是重点  那么你的django提供的orm也是查询语句最重点 ,也提供的查询方法比较的多,下面我们学习下类似于MYSQL的连表(join)查询 Django 还提供了一种直观而 ...

  10. React学习笔记(七)条件渲染

    React学习笔记(七) 六.条件渲染 使用if或条件运算符来创建表示当前状态的元素. 可以使用变量来存储元素.比如: let button = null; if (isLoggedIn) { but ...