本文实例讲述了Android解析JSON数据的方法。分享给大家供大家参考,具体如下:
JSON作为一种“轻量”的数据结构传递数据,在JS中有广泛的应用
Google公司对JSON的解析提供了gson.jar这个包,它不依赖于其他任何JAR包;自从Android3.0中已经合入了该解析器的功能,但之前的版本是没有的。
findViewById(R.id.parseBtn).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
MainActivity.parseJson(jsonData);
}
});
public static void parseJson(String jsonStr){
//如果要解析JSON数据,首先要有一个JsonReader对象
JsonReader jsonReader = new JsonReader(new StringReader(jsonStr));
try {
//开始遍历数组(多个JSON对象)
jsonReader.beginArray();
while(jsonReader.hasNext()){
//开始遍历JSON对象(含有多个属性)
jsonReader.beginObject();
while(jsonReader.hasNext()){
String tagName = jsonReader.nextName();
if(tagName.equals("name")){
System.out.println("name --> " + jsonReader.nextString());
}else if(tagName.equals("age")){
System.out.println("age --> " + jsonReader.nextString());
}
}
//遍历JSON对象结束
jsonReader.endObject();
}
//遍历数组结束
jsonReader.endArray();
} catch (IOException e) {
e.printStackTrace();
}
}
将JSON格式转换为类的步骤如下:
//先定义一个类
public class User {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
//只将一组数据转换的方法
findViewById(R.id.parseObj).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String jsonData = "{\"name\":\"Michael\",\"age\":20}";
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);
System.out.println("name--->" + user.getName());
System.out.println("age---->" + user.getAge());
}
});
//将多组数据转换的方法
findViewById(R.id.parseObjs).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData, listType);
for (Iterator iterator = users.iterator(); iterator.hasNext();) {
User user = (User) iterator.next();
System.out.println("name--->" + user.getName());
System.out.println("age---->" + user.getAge());
}
}
});
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
您可能感兴趣的文章:Android编程简单解析JSON格式数据的方法示例Android使用OKHTTP解析JSON数据的实例代码android JSON解析数据 android解析天气预报Android 中对JSON数据解析实例代码Android解析json数据示例代码(三种方式)Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法Android之解析JSON数据示例(android原生态,FastJson,Gson)Android json数据解析详解及实例代码Android系列---JSON数据解析的实例Android利用Gson解析嵌套多层的Json的简单方法Android M(6.x)使用OkHttp包解析和发送JSON请求的教程Android json解析及简单例子android解析JSON数据Android中gson、jsonobject解析JSON的方法详解Android解析json数组对象的方法及Apply和数组的三个技巧Android随手笔记44之JSON数据解析Android学习笔记45之gson解析jsonandroid原生JSON解析实例