Android解析JSON数据的方法分析

本文实例讲述了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数据的方法分析 的全部内容, 来源链接: utcz.com/z/330008.html

回到顶部