Android解析json数据示例代码(三种方式)

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()); } } });

先获取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使用起来还是很方便的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-11-03 18:38:30

Android解析json数据示例代码(三种方式)的相关文章

jquery解析JSON数据示例代码

 作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式 这里可以找到json.js的代码,后面还需要formutil.js的代码及MD5.js    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明.  这里首先给

jquery解析JSON数据示例代码_jquery

这里可以找到json.js的代码,后面还需要formutil.js的代码及MD5.js 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明. 这里首先给出JSON字符串集,字符串集如下: 代码如下: 复制代码 代码如下: var data=" { root: [ {name:'1',value

android解析JSON数据_Android

JSONObject的使用  一. JSON对象的使用: String content = "{'username': 'linux', 'password': '123456'}"; JSONObject jsonObject = new JSONObject(content); String username = jsonObject.getString("username"); String password = jsonObject.getString(&q

Android解析JSON数据的方法分析_Android

本文实例讲述了Android解析JSON数据的方法.分享给大家供大家参考,具体如下: JSON作为一种"轻量"的数据结构传递数据,在JS中有广泛的应用 Google公司对JSON的解析提供了gson.jar这个包,它不依赖于其他任何JAR包:自从Android3.0中已经合入了该解析器的功能,但之前的版本是没有的. findViewById(R.id.parseBtn).setOnClickListener(new OnClickListener(){ @Override public

Android解析JSON数据的方法分析

本文实例讲述了Android解析JSON数据的方法.分享给大家供大家参考,具体如下: JSON作为一种"轻量"的数据结构传递数据,在JS中有广泛的应用 Google公司对JSON的解析提供了gson.jar这个包,它不依赖于其他任何JAR包:自从Android3.0中已经合入了该解析器的功能,但之前的版本是没有的. findViewById(R.id.parseBtn).setOnClickListener(new OnClickListener(){ @Override public

android中Webview实现截屏三种方式小结

本人最近学习了android中Webview实现截屏三种方式,下面我来记录一下,有需要了解的朋友可参考.希望此文章对各位有所帮助. 第一种方式 通过调用webview.capturePicture(),得到一个picture对象,根据图像的宽和高创建一个Bitmap,再创建一个canvas,绑定bitmap,最后用picture去绘制. //获取Picture对象 Picture picture = wv_capture.capturePicture(); //得到图片的宽和高(没有reflec

Android之解析JSON数据示例(android原生态,FastJson,Gson)

1.json网页代码 <%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%><%@page isELIgnored="false" %>${fqs } 2.json数据网页效果图 3.Android代码 布局 <?xml version="1.0" encod

PHP中数据类型转换的三种方式_php技巧

PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: 1.(int).(integer):转换成整形 2.(float).(double).(real):转换成浮点型 3.(string):转换成字符串 4.(bool).(boolean):转换成布尔类型 5.(array):转换成数组 6.(object):转换成对象 PHP数据类型有三种转换方式: 1.在要转换的变量之前加上用括号括起来的目标类型 2.使用3个具体类型的转换函数,intval().floatval().strval

android完全退出应用程序的三种方式 .

当应用不再使用时,通常需要关闭应用,可以使用以下两种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程.  建议使用这种方式 android.os.Process.killProcess(android.os.Process.myPid()) 第二种方法:终止当前正在运行的Java虚拟机,导致程序终止 System.exit(0); 第三种方法:强制关闭与该包有关联的一切执行 ActivityManager manager = (ActivityManager) g