Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> android如何使用FastJson

android如何使用FastJson

編輯:Android開發教程

FastJson是阿裡巴巴開源的一個Json處理工具包,包括“序列化”和“反序列化”兩部分。

測試表明,fastjson具有極快的性能,超越任其他的Java Json parser。包括自稱最快的JackJson,功能強大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;無依賴,能夠直接運行在Java SE 5.0以上版本;支持Android;開源 (Apache 2.0)

FastJson 說明:https://github.com/Alibaba/fastjson/wiki/%E9%A6%96%E9%A1%B5

注意:FastJson有分Java版本和Android版本的,不要弄錯了,很多博客上都沒提及這一點

android FastJson jar 下載地址:https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.11/fastjson-1.2.11.jar

將該jar包拷貝到項目的libs目錄下,android會自動引用

FastJson中的常用方法:

1、Person.java

class Person {
	//姓名
	private String name = null;
	//年齡
	private int age = 0;
	//是否為男性
	private boolean isMale = true;
	//孩子的姓名
	private List<String> childName = new ArrayList<String>();

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

	public boolean isMale() {
		return isMale;
	}

	public void setMale(boolean isMale) {
		this.isMale = isMale;
	}

	public List<String> getChildName() {
		return childName;
	}

	public void setChildName(List<String> childName) {
		this.childName = childName;
	}

	public void init() {
		name = "Bob";
		age = 25;
		isMale = true;
		childName.add("Tina");
		childName.add("Linda");
		childName.add("Tom");
	}
	
	@Override
	public String toString() {
	    //URL:http://www.bianceng.cn/OS/extra/201608/50411.htm
		String str = "姓名: " + name + ", 年齡: " + age + ", 性別: " + (isMale?"男性":"女性") + "\n";
		if(childName != null && childName.size() != 0) {
			str = str + "孩子個數: " + childName.size() + "\n";
			for(int i=0;i<childName.size(); i++) {
				str = str + "\t" + i + ". " + childName.get(i) + "\n";
			}
		}
		return str;
	}
}

2、activity_fastjson.xml 就一個TextView用來顯示結果

3、FastjsonActivity.java

public class FastjsonActivity extends Activity {

	public TextView textView;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_fastjson);
		
		textView = (TextView) findViewById(R.id.textview);
		
		Person person = new Person();
		person.init();
		//(1)
		JSONObject personObject = (JSONObject) JSON.toJSON(person);
		addText(personObject.toString());
		//(2)
		String personStr = JSON.toJSONString(person);
		addText(personStr);
		//(3)
		person = JSON.parseObject(personStr, Person.class);
		addText(person.toString());
		//(4)
		String jsonArrStr = "[\"a\", \"b\", \"c\", \"d\"]";
		JSONArray jsonArr = JSON.parseArray(jsonArrStr);
		addText(jsonArr.toString());
		//(5)
		List<String> strlist = JSON.parseArray(jsonArrStr, String.class);
		addText(strlist.toString());
	}
	
	public void addText(String str) {
		textView.setText(textView.getText().toString() + str + "\n");
	}
}

輸出結果:

{“childName”:["Tina","Linda","Tom"],"name":"bob","age":25,"isMale":true}

{"age":25,"childName":["Tina","Linda","Tom"],"isMale":true,"name":"Bob"}

姓名: Bob, 年齡: 25, 性別: 男性

孩子個數: 3

0. Tina

1. Linda

2. Tom

["a","b","c","d"]

[a,b,c,d]

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved