有什么不懂的可以去官网去看看: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添加单击事件,
01 |
package com.tony.json;
|
03 |
import android.app.Activity;
|
04 |
import android.os.Bundle;
|
05 |
import android.view.View;
|
06 |
import android.widget.Button;
|
08 |
public class JsonActivity extends Activity {
|
09 |
/** Called when the activity is first created. */
|
11 |
private String jsonData = "[{\"name\":\"zhangsan\",\"age\":22},{\"name\":\"lisi\",\"age\":23}]" ;
|
12 |
private Button jsonButton;
|
14 |
public void onCreate(Bundle savedInstanceState) {
|
15 |
super .onCreate(savedInstanceState);
|
16 |
setContentView(R.layout.main);
|
17 |
jsonButton = (Button) findViewById(R.id.json_button);
|
18 |
jsonButton.setOnClickListener( new View.OnClickListener() {
|
21 |
public void onClick(View v) {
|
22 |
JsonUtils jsonUtils = new JsonUtils();
|
23 |
jsonUtils.parseJson(jsonData);
|
这个类中主要是解析json数组:
01 |
package com.tony.json;
|
03 |
import java.io.IOException;
|
04 |
import java.io.StringReader;
|
06 |
import android.util.Log;
|
08 |
import com.google.gson.stream.JsonReader;
|
10 |
public class JsonUtils {
|
11 |
private static final String TAG = "JsonUtils" ;
|
13 |
public void parseJson(String jsonData){
|
14 |
JsonReader reader = new JsonReader( new StringReader(jsonData));
|
16 |
reader.beginArray(); // 开始解析数组
|
17 |
while (reader.hasNext()) {
|
18 |
reader.beginObject(); // 开始解析对象
|
19 |
while (reader.hasNext()) {
|
20 |
String tagName = reader.nextName(); // 得到键值对中的key
|
21 |
if (tagName.equals( "name" )) { // key为name时
|
22 |
Log.i(TAG, "name--------->" + reader.nextString()); // 得到key中的内容
|
23 |
} else if (tagName.equals( "age" )) { // key为age时
|
24 |
Log.i(TAG, "age--------->" + reader.nextInt()); // 得到key中的内容
|
30 |
} catch (IOException e) {
|
下面是运行后在logcat中打印出的结果:
-
1.Android中解析json程序代码
Android程序解析json数据可以通过gson的方式,这种情况需要导入相应的jar包.测试代码如下: @Override protected void onCreate(Bundle savedI ...
-
Android中解析JSON形式的数据
1.JSON(JavaScript Object Notation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式, ...
-
android 中解析json格式数据
本文来自http://tonysun3544.iteye.com/category/188238 package com.tony.json; import android.app.Activity; ...
-
Android中解析JSON格式数据常见方法合集
待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...
-
Android中解析Json数据
在开发中常常会遇到解析json的问题 在这里总结几种解析的方式: 方式一: json数据: private String jsonData = "[{\"name\":\ ...
-
[入门阅读]怎样在android中解析JSON
JSON入门介绍:http://kirin.javaeye.com/blog/616226 也参考了此篇:http://blog.163.com/fushaolin@126/blog/static/1 ...
-
实现android上解析Json格式数据功能
实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...
-
android中解析文件的三种方式
android中解析文件的三种方式 好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...
-
[置顶] Android学习系列-Android中解析xml(7)
Android学习系列-Android中解析xml(7) 一,概述 1,一个是DOM,它是生成一个树,有了树以后你搜索.查找都可以做. 2,另一种是基于流的,就是解析器从头到尾解析一遍xml文件. ...
随机推荐
-
Android:Activity+Fragment及它们之间的数据交换.
Android:Activity+Fragment及它们之间的数据交换 关于Fragment与Fragment.Activity通信的四种方式 比较好一点的Activity+Fragment及它们之间 ...
-
http://blog.csdn.net/wxwzy738/article/details/16968767
http://blog.csdn.net/wxwzy738/article/details/16968767
-
在安装twincat plc时,出现 there are some files marked for deletion on next reboot.please reboot first then
在注冊表内"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\ "中删除注冊表值 " ...
-
java虚拟机 jvm 局部变量表实战
java局部变量表是栈帧重要组中部分之一.他主要保存函数的参数以及局部的变量信息.局部变量表中的变量作用域是当前调用的函数.函数调用结束后,随着函数栈帧的销毁.局部变量表也会随之销毁,释放空间. 由于 ...
-
更改EBS R12中forms的模式Servlet/Socket
EBS R12中forms的模式有:Servlet mode 和 Forms Socket mode 当我们完成Oracle EBS R12套件的快速安装后,forms的默认配置是Servlet mo ...
-
gooderp安装
在做ODOO的前提下需要PostgreSQL, SO.... #!/bin/bashPID=`echo $$`echo -e "\033[35m该脚本只在CentOS 7.4.1708版本 ...
-
《Microsoft SQL Server 2012 T-SQL Fundamentals》
书名 <SQL Server 2012 T-SQL基础教程> 图片 时间 2017-8 学习 每章后面有习题很适合我,看完写sql的能力有质的飞跃好书 http://tsql.soli ...
-
vue中引入jquery
npm install jquery -S 在webpack.base.conf.js里加入 plugins: [ new webpack.optimize.CommonsChunkPlugin('c ...
-
设计模式之Visitor(访问者)(转)
Visitor定义 作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作. 在Java中,Visitor模式实际上是分离了collection结构中的 ...
-
jenkins自定义安装目录
jenkins默认会安装到jvm环境变量的user.dir目录下,这样在系统重新安装后容易丢失. 将以下文件保存为start.bat放到jekins.jar同一目录,执行start.bat即可将jek ...