Fastjson是一个性能很好的Java语言实现的Json解析器和生成器,由来自阿里巴巴的工程师开发。具有极快的性能,超越任何其他的Java Json Parser。
特点: 1、快速(比其他任何基于Java的解析器和生成器更快,包括Jackson)
2、强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Data或enum)
3、零依赖(没有依赖其他任何类库,除JDK)
4、支持注解、支持全类型序列化
基本使用方法:
1、创建android工程,引入fastjson-1.2.5.jar(可以在这里下载)
2、在AndroidManifest.xml添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
3、创建实体类:
Book类:
package com.example.bean;
import java.util.ArrayList;
public class Book
{
private String title;//标题
private String publisher;//出版社
private String summary;//概要
private ArrayList<Tag> tags;
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getPublisher()
{
return publisher;
}
public void setPublisher(String publisher)
{
this.publisher = publisher;
}
public String getSummary()
{
return summary;
}
public void setSummary(String summary)
{
this.summary = summary;
}
public ArrayList<Tag> getTags()
{
return tags;
}
public void setTags(ArrayList<Tag> tags)
{
this.tags = tags;
}
}
实体类Tag:
package com.example.bean;
public class Tag
{
private String count;
private String name;
private String title;
public String getCount()
{
return count;
}
public void setCount(String count)
{
this.count = count;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
}
4、网络请求数据和解析Json:
package com.example.gsondemo;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.widget.Toast;
import com.alibaba.fastjson.JSON;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.example.bean.Book;
public class MainActivity extends ActionBarActivity
{
//请求接口
private String url = "https://api.douban.com/v2/book/1220562";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getData();
}
/**
* 获取网络数据
*/
private void getData()
{
//创建请求对象
StringRequest request = new StringRequest(url, new Listener<String>() {
@Override
public void onResponse(String response)
{
Log.e("info", response);
dealData(response);
}
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error)
{
Toast.makeText(MainActivity.this, "网络请求出错", Toast.LENGTH_SHORT).show();
}
});
//把请求对象加入请求队列里面
new Volley().newRequestQueue(getApplicationContext()).add(request);
}
/**
* 进行fastjson解析
* @param result
*/
public void dealData(String result){
//把json字符串转化为实例对象
Book book = JSON.parseObject(result, Book.class);
Toast.makeText(MainActivity.this, "标题:" + book.getTitle() + " 出版社:" + book.getPublisher()
+ " Tag:" + book.getTags().size(), 1).show();
}
}