Fastjson簡介和基本使用
阿新 • • 發佈:2019-02-13
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類:
實體類Tag: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; } }
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();
}
}