使用json格式的數據進行通信


4 Java對象轉換成JSON

4.1 問題

將Java對象轉換成符合JSON格式的字符串,並測試。

4.2 方案

使用與json-lib.jar相關的jar文件完成類型的轉換。

4.3 步驟

步驟一:新建實體類Friend

圖- 15

步驟二:新建JSONTest類

在該類中添加四個方法,分別用於測試Java對象轉換為JSON字符串,Java數組轉換為JSON字符串,JSON字符串轉換為Java對象,JSON字符串轉換為Java數組。

步驟三:引入jar文件

在添加jar文件的時候,需要導入6個jar文件,缺一不可。如圖-16所示。

圖- 16

步驟四:添加具體的轉換方法:Java對象轉換為JSON字符串

圖- 17

步驟五:運行結果

圖– 18

步驟六:Java數組(集合)轉換為JSON字符串

圖– 19

運行結果:

圖- 20

步驟七:JSON字符串轉換為Java對象

圖– 21

運行結果:

圖- 22

步驟八:JSON字符串轉換為Java數組(集合)

圖– 23

運行結果:

圖- 24

4.4 完整代碼

Friend.java文件代碼如下:

package bean;

public class Friend {
	private String name;
	private int age;

	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 String toString() {
		return this.name + "   " + this.age;
	}
}

JSONTest.java文件代碼如下:

package json;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import bean.Friend;

public class JSONTest {
	/**
	 * Java對象轉換為JSON字符串
	 */
	public static void test1() {
		Friend f = new Friend();
		f.setName("Zoro");
		f.setAge(19);
		JSONObject jsonObj = JSONObject.fromObject(f);
		String jsonStr = jsonObj.toString();
		System.out.println(jsonStr);
	}

	/**
	 * Java數組轉換為JSON字符串
	 */
	public static void test2() {
		List<Friend> fs = new ArrayList<Friend>();
		for (int i = 0; i < 3; i++) {
			Friend f = new Friend();
			f.setName("Zoro" + (i + 1));
			f.setAge(19 + i);
			fs.add(f);
		}
		JSONArray jsonArr = JSONArray.fromObject(fs);
		String jsonStr = jsonArr.toString();
		System.out.println(jsonStr);
	}
	/**
	 * JSON字符串轉換為Java對象
	 */
	public static void test3(){
		String jsonStr = "{\"name\":\"Luffy\",\"age\":17}";
		JSONObject jsonObj = JSONObject.fromObject(jsonStr);
		Friend friend = (Friend)JSONObject.
					toBean(jsonObj, Friend.class);
		System.out.println(friend);
	}
	
	/**
	 * JSON字符串轉換為Java數組
	 */
	public static void test4(){
		String jsonStr = "[{\"name\":\"Luffy\",\"age\":17}," +
				"		{\"name\":\"Zoro\",\"age\":19}]";
		JSONArray jsonArr = JSONArray.fromObject(jsonStr);
		List<Friend> friends = (List<Friend>)JSONArray.
					toCollection(jsonArr, Friend.class);
		for(Friend f :friends){
			System.out.println(f);
		}
	}

	public static void main(String[] args) {
		 //test1();
		//test2();
		//test3();
		test4();
	}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM