什么是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);
}
});
}
}
这个类中主要是解析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();
}
}
}
下面是运行后在logcat中打印出的结果:
分享到:
相关推荐
在Android Studio中通过GET请求到的JSON对象的解析源码,每一步都有注释,方便小白萌新学习。
android框架解析JSON数据放入ListView的例子
Android_JSON数据解析 博客里面的Demo
利用GET请求获取到JSON数据,然后再Android Studio中对JSON数组进行解析,获取到的内容展示再ListView上,比较适合萌新学习解析JSON数组,每一个步骤都有注释,非常的详细。
我的博客中的关于android中gson解析json数据例程,遇到不懂的可以来我的博客中交流。(๑•̀ㅂ•́)و✧
eclipse项目。获取raw文件下的json文件。无需编写json数据里面key值的实体类,动态获取里面的键值对的值。并在列表显示
Android应用源码之Android 解析json_dome.zip
这里进行介绍Gson解析复杂Json和简单Json的数据方式
老罗android 解析json数据源码
android json 解析 json数据格式解析我自己分为两种; 一种是普通的,一种是带有数组形式的;
Android解析Json数据的PPT和源码
android解析JSON字符串,简单形式和复杂形式。
使用解析JSON文件获取天气预报信息,并将不同城市的天气信息显示在主界面中,应用程序运行时界面如图1所示。单击其他城市按钮时,将显示相应城市对应的天气信息,如图2所示4.在模块对应的包名下创建JSON数据对应的...
Android中Json的数据解析博文源码。博文请关注:http://blog.csdn.net/yegongheng
本文实例讲述了Android读取本地json文件的方法。分享给大家供大家参考,具体如下: 1、读取本地JSON ,但是显示汉字乱码 public static String readLocalJson(Context context, String fileName){ String json...
Android Studio下使用Google Gson解析Json数据示例
安卓Android源码——解析json_dome.zip
android中的JSON数据解析库gson和fastjson,gson.jar和fastjson.jar是android中解析JSON数据非常好用的两个工具
在Android平台下解析Json的方式,使用的org.json对其进行解析。
Android解析JSON格式