Json的解析库由两种,分别是Google的gson库和阿里巴巴的Fast-json库,下面主要主要介绍这两个库的使用方法。
(1)gson库的使用方法
/**
* gson处理json的方式
* @param result
*/
private void dealData(String result)
{
Gson gson = new Gson();
Book book = gson.fromJson(result,Book.class);
Log.d("book", book.getTitle() + "," + book.getPublisher() + "," + book.getTags().size());
//转化为List集合
//Type listType = new TypeToken<ArrayList<Book>>() {}.getType();
//gson.fromJson(result , listType);
}
public class Book {
private String title;
private String publisher;
private String summary;
private ArrayList<Tag> tags;
public void setTitle(String title) {
this.title = title;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public void setSummary(String summary) {
this.summary = summary;
}
public void setTags(ArrayList<Tag> tags) {
this.tags = tags;
}
public String getTitle() {
return title;
}
public String getPublisher() {
return publisher;
}
public String getSummary() {
return summary;
}
public ArrayList<Tag> getTags() {
return tags;
}
}
在dealData函数中传入一个String类型的参数result,这个参数是你获取到的JsonObject类型的数据通过toString方法获取的。Book类是一个标准类型,是将你的Json数据转化为Book类型。要注意的是Book类中的属性必须要和Json数据中的标识一致。
(2)Fast-json的使用方法
private void dealData2(String result)
{
Book book = JSON.parseObject(result , Book.class);
// 转化为List集合
//ArrayList<Book> bookList = JSON.parseObject(result , new TypeReference<List<Book>>(){});
//ArrayList<Book> bookList = JSON.parseArray(result , Book.class);
// 转化为Json数据格式
String s = JSON.toJSON(book).toString();
//转化为Json数据格式
//List<Book> bookList = new ArrayList<Book>();
//String s = JSON.toJSON(bookList).toString();
Log.d("book" , book.getTitle() + "," + book.getPublisher() + "," + book.getSummary());
Log.d("json" , s);
}
Fast-json的使用方法与gson的使用方法了类似,个人比较喜欢用Fast-json,看起来比较舒服。以上是我对两种json解析库的理解,推介一个用来格式化Json数据的网站http://www.bejson.com/