- 浏览: 725369 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lingsuch:
Android网络连接判断与处理 -
月光照着我:
写的不错,作为笔记了
Android中LayoutInflater的使用 -
智博王锋:
好文章是要顶的!
Android中LayoutInflater的使用 -
云南白药:
...
Android中LayoutInflater的使用 -
万新one:
理解了许多。解释的不错。3Q.
Android中LayoutInflater的使用
什么是JSON?
1.JSON:Javascript Object Nation
2.JSON是一系列键值对的集合
3.JSON以经被大多数开发人员接受,在网络数据传输中应用相当广泛
4.JSON相对XML来说解析相对方便一些
JSON vs XML
1.JSON 和 XML 可读性基本相同
2.JSON 和 XML 同样有丰富的解析手段
3.JSON相对XML来说体积数据小
4.JSON和Javascript的交互更加方便
5.JSON对数据的描述性相对较差
有什么不懂的可以去官网去看看:www.json.org
在google android中也有关于解析JSON的类库:JsonReader,但是只能在3.0以后的版本中才可以用,在这里我们用google提供的类库google-gson,可以从code.google.com/p/google-gson/下载jar包。
下面通过一个小例子来学习一下:
例子:
[{"name":"zhangsan","age":22},{"name":"lisi","age":23}]
分析:
1.开始解析数组
2.开始解析对象
3.解析键值对
4.解析键值对
5.解析对象结束
6.开始解析对象
7.解析键值对
8.解析键值对
9.解析对象结束
10.解析数组结束
下面的是一个Activity,很简单只有一个button,并为button添加单击事件,
- package com.tony.json;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class JsonActivity extends Activity {
- /** Called when the activity is first created. */
- private String jsonData = "[{\"name\":\"zhangsan\",\"age\":22},{\"name\":\"lisi\",\"age\":23}]";
- private Button jsonButton;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- jsonButton = (Button) findViewById(R.id.json_button);
- jsonButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- JsonUtils jsonUtils = new JsonUtils();
- jsonUtils.parseJson(jsonData);
- }
- });
- }
- }
package com.tony.json; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class JsonActivity extends Activity { /** Called when the activity is first created. */ private String jsonData = "[{\"name\":\"zhangsan\",\"age\":22},{\"name\":\"lisi\",\"age\":23}]"; private Button jsonButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); jsonButton = (Button) findViewById(R.id.json_button); jsonButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { JsonUtils jsonUtils = new JsonUtils(); jsonUtils.parseJson(jsonData); } }); } }
这个类中主要是解析json数组:
- package com.tony.json;
- import java.io.IOException;
- import java.io.StringReader;
- import android.util.Log;
- import com.google.gson.stream.JsonReader;
- public class JsonUtils {
- private static final String TAG = "JsonUtils";
- public void parseJson(String jsonData){
- JsonReader reader = new JsonReader(new StringReader(jsonData));
- try {
- reader.beginArray(); // 开始解析数组
- while (reader.hasNext()) {
- reader.beginObject(); // 开始解析对象
- while (reader.hasNext()) {
- String tagName = reader.nextName(); // 得到键值对中的key
- if (tagName.equals("name")) { // key为name时
- Log.i(TAG, "name--------->" + reader.nextString()); // 得到key中的内容
- }else if (tagName.equals("age")) { // key为age时
- Log.i(TAG, "age--------->" + reader.nextInt()); // 得到key中的内容
- }
- }
- reader.endObject();
- }
- reader.endArray();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
package com.tony.json; import java.io.IOException; import java.io.StringReader; import android.util.Log; import com.google.gson.stream.JsonReader; public class JsonUtils { private static final String TAG = "JsonUtils"; public void parseJson(String jsonData){ JsonReader reader = new JsonReader(new StringReader(jsonData)); try { reader.beginArray(); // 开始解析数组 while (reader.hasNext()) { reader.beginObject(); // 开始解析对象 while (reader.hasNext()) { String tagName = reader.nextName(); // 得到键值对中的key if (tagName.equals("name")) { // key为name时 Log.i(TAG, "name--------->" + reader.nextString()); // 得到key中的内容 }else if (tagName.equals("age")) { // key为age时 Log.i(TAG, "age--------->" + reader.nextInt()); // 得到key中的内容 } } reader.endObject(); } reader.endArray(); } catch (IOException e) { e.printStackTrace(); } } }
下面是运行后在logcat中打印出的结果:
发表评论
-
Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误完美解决)
2013-09-11 15:09 9655最近编程时遇到问题:写了一个android小程序,打包后用 ... -
Android 引用外部项目库
2013-02-05 16:36 2880项目中要集成其他项目由于集成项目庞大不想机械的copy,就想 ... -
Android网络连接判断与处理
2013-01-29 16:33 22086获取网络信息需要在AndroidManifest.xml文 ... -
Android有用代码片段2
2013-01-22 19:51 1990记得2011年的时候,整理了android有用代码片段这篇文 ... -
android有用代码片段
2013-01-22 19:48 2831有时候,需要一些小的功能,找到以后,就把它贴到了博客下面, ... -
Android 使用draw9patch技术实现不失真背景
2012-09-23 16:27 3561做人要大度,海纳百川,做事要圆滑,左右逢源,这让我想到了 ... -
Android第三方包组件实现总结
2012-09-03 15:35 2060前沿: 在android开发过程中,往往会需要创建组件 ... -
Android 获取手机总内存和可用内存等信息
2012-08-17 17:35 5843在android开发中,有时候我们想获取手机的一些硬件信息 ... -
Android中attr自定义属性详解
2012-07-19 10:17 1414首先在你需要使用自定义属性的布局文件中定义标签,当 ... -
Android 读取<meta-data>元素的数据
2012-06-21 13:31 1227在AndroidManifest.xml ... -
获取AndroidManifest里的信息
2012-06-21 12:09 955看附件 -
Java基础之软引用、弱引用、虚引用
2012-06-18 10:02 11131、概述 在JDK1.2以前 ... -
Android播放声音MediaPlayer类详细介绍
2012-06-06 13:13 11890MediaPlayer ... -
Android 画图之抗锯齿
2012-05-30 18:00 1944在画图的时候,图片如果旋转或缩放之 ... -
Android 画布绘图
2012-05-30 17:58 31862我们已经介绍了Canvas,在 ... -
Android中LayoutInflater的使用
2012-05-28 12:15 33524Inflater英文意思是膨胀,在Android中应该是扩展的 ... -
Android Matrix理论与应用详解,附三角函数公式
2012-03-19 15:13 4984Matrix学习——基础知识 以前在线性代数中学习了矩阵,对 ... -
Android 实现从网络上异步加载图像
2012-03-17 15:44 1125研究了android从网络上异步加载图像,现总结如下: (1 ... -
Activity中ConfigChanges属性配置描述
2012-02-08 23:01 2050通过设置这个属性可以使Activity捕捉设备状态变化,以下是 ... -
Android代码混淆
2011-12-26 18:23 3277一个xxx.apk提交给测试、 ok,去倒杯水,看看网页 ...
相关推荐
Android Studio下使用Google Gson解析Json数据示例
Eclipse下使用Google Gson解析Json数据示例,挺好用的,亲测
本Demo验证了在安卓环境下使用Json的Key作为反序列化条件的解析速度。结论是解析速度最快的不是阿里的fastjson,也不是Google的Gson,而是...
Eclipse下使用Google Gson解析Json数据示例
android google gson json解析
用google的gson 解析json数据 里面有解析数组的方式 可根据自己的json样式自己定制 使用新手 分享一下
使用google 提供的gson.jar的包来生成json格式数据,并利用from json解析这些数据将这些数据显示在手机界面上。亲测可用,项目下载后能够直接运行。本资源是项目的原码哦!
使用说明见 http://blog.csdn.net/u010058586/article/details/41822843
本文实例讲述了Android解析JSON数据的方法。分享给大家供大家参考,具体如下: JSON作为一种“轻量”的数据结构传递数据,在JS中有广泛的应用 Google公司对JSON的解析提供了gson.jar这个包,它不依赖于其他任何JAR包...
使用各种方法解析json数据,分别包括系统本身自带的json方法,谷歌的Gson和阿里巴巴推出的FastJson方法。
import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.json.JSONArray; import org.json.JSONObject; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; import org....
Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个JSON字符串转成一个Java对象(反序列化),或者反过来(序列化)。 GSON地址:google/gson (github.com) Android引入GSON: ...
使用google-gson的jsonReader来解析json数据
这篇文章就是示范如何用GSON把JSON数据与实体类进行相互转化,需要用到gson-2.3.1.jar这个包。直接贴代码了: import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import ...
google的json解析库, gson-2.8.5版本,在Android工程中直接添加到 lib 目录下即可引用。
android json 解析 ,希望大家好好学习啊
Gson 解析器示例 如何使用 Gson 解析 Json 文档 1.- 在 Android Studio 中下载 Gson 库。 在 app 文件夹中,我们打开 build.gradle 文件并在“dependencies”部分添加以下行: compile '...
这个是android用来解析json数据的一个种方式,是由谷歌官方提供的gson方式。这个版本是1.5的,希望可以对你有用。
此处介绍两种方式:使用Google原生的Gson解析json数据,使用JSONObject解析json数据 一、使用Google原生的Gson解析json数据: 记得在客户端添加gson.jar。 核心代码: 服务端: package com.mfc.ctrl; import...
gson-2.8.6.jar下载,gson是Google开发的一款优秀的Java JSON解析库。它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。gson库简单易用,性能良好,所以很受欢迎,被广泛应用于Android和Java项目中...