JAVA接口自動化(十)json數據與java對象的相互轉換

(1)JSON兩種格式
1、對象:對象在js中表示爲“{}”括起來的內容,數據結構爲 {key:value,key:value,…}的鍵值對的結構,在面向對象的語言中,key爲對象的屬性,value爲對應的屬性值,所以很容易理解,取值方法爲 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。
2、數組:數組在js中是中括號“[]”括起來的內容,數據結構爲 [“java”,“javascript”,“vb”,…],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。
(2)演示
配置fastjson依賴

	<dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>fastjson</artifactId>
    	<version>1.2.47</version>
	</dependency>

javaBeanBase

package com.suning.Json;

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

public class javaBeanBase {
	private String name ;
	private String address;
	private int age ;
	private String offer;
	private List<javaBeanBase> list = new ArrayList<javaBeanBase>();
	//無參數構造器
	public javaBeanBase(){}
	//帶參數構造器
	public javaBeanBase(String name,String address,int age,String offer){
		this.name = name ;
		this.address = address;
		this.age = age ;
		this.offer = offer;
	}
	//帶有list集合的構造器
	public javaBeanBase(List<javaBeanBase> list ){
		this.list = list;
	}
	
	public List<javaBeanBase> getList() {
		return list;
	}
	public void setList(List<javaBeanBase> list) {
		this.list = list;
	}
	@Override
	public String toString() {
		return "javaBeanBase [name=" + name + ", address=" + address + ", age="
				+ age + ", offer=" + offer + "]";
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getOffer() {
		return offer;
	}
	public void setOffer(String offer) {
		this.offer = offer;
	}
}

jsonConvertDemo

package com.suning.Json;

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

import org.testng.annotations.Test;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class jsonConvertDemo {
	@Test
	public void javabenConvertString(){
		javaBeanBase baseObject = new javaBeanBase("turan","nanjing",25,"8000");
		javaBeanBase baseObjct2 = new javaBeanBase();
		
		//{"address":"nanjing","age":25,"name":"turan","offer":"8000"}
		String str = JSON.toJSONString(baseObject);
		//{"age":0}
		String str2 = JSON.toJSONString(baseObjct2);
		System.out.println(str);
		System.out.println(str2);
	}
	
	@Test
	public void listConvertJSON(){
		javaBeanBase listObject1 = new javaBeanBase("tangchao","nanjing",24,"6000");
		javaBeanBase listObject2 = new javaBeanBase("zhushuo","lianyungang",25,"7000");
		javaBeanBase listObject3 = new javaBeanBase("dingwenyi","hangzhou",26,"8000");
		List<javaBeanBase> list = new ArrayList<javaBeanBase>();
		list.add(listObject1);
		list.add(listObject2);
		list.add(listObject3);
		//[{"address":"nanjing","age":24,"name":"tangchao","offer":"6000"},{"address":"lianyungang","age":25,"name":"zhushuo","offer":"7000"},{"address":"hangzhou","age":26,"name":"dingwenyi","offer":"8000"}]
		String str3 = JSON.toJSONString(list);
		System.out.println(str3);
	}
	
	@Test
	public void listConvertJSON2(){
		javaBeanBase listObject1 = new javaBeanBase("tangchao","nanjing",24,"6000");
		javaBeanBase listObject2 = new javaBeanBase("zhushuo","lianyungang",25,"7000");
		javaBeanBase listObject3 = new javaBeanBase("dingwenyi","hangzhou",26,"8000");
		List<javaBeanBase> list = new ArrayList<javaBeanBase>();
		list.add(listObject1);
		list.add(listObject2);
		list.add(listObject3);
		javaBeanBase listobject4 = new javaBeanBase(list);
		//{"age":0,"list":[{"address":"nanjing","age":24,"list":[],"name":"tangchao","offer":"6000"},{"address":"lianyungang","age":25,"list":[],"name":"zhushuo","offer":"7000"},{"address":"hangzhou","age":26,"list":[],"name":"dingwenyi","offer":"8000"}]}
		String str5 = JSON.toJSONString(listobject4);
		System.out.println(str5);
	}
	
	@Test
	public void jsonConvertJAVA(){
		String jsontoJAVA = "{'name':'chibin','address':'shanghai','age':'30','offer':'gaoxin'}";
		javaBeanBase object = JSON.parseObject(jsontoJAVA,javaBeanBase.class);
		System.out.println(object);
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章