1. 程式人生 > >Fastjson簡介和基本使用

Fastjson簡介和基本使用

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();
	}
}