2017_11_22 Json數據與Java對象互轉的兩種方式(一)

操縱json數據的兩種方式:

一種是通過JsonObject(JsonArray)



注:JsonArray是用來專門操作集合的

package test;


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


import net.sf.json.JSONArray;
import entity.People;


public class JsonToObject1 {


public static void main(String[] args) {
People people1 = new People("Brett","McLaughlin","aaaa");
People people2 = new People("Jason","Hunter","bbbb");
People people3 = new People("Elliotte","Harold","cccc");
List<People> list = new ArrayList<People>();
list.add(people1);
list.add(people2);
list.add(people3);
objectToJson(list);
String json = "[{\"email\":\"aaaa\",\"firstName\":\"Brett\",\"lastName\":\"McLaughlin\"},"
+ "{\"email\":\"bbbb\",\"firstName\":\"Jason\",\"lastName\":\"Hunter\"},"
+ "{\"email\":\"cccc\",\"firstName\":\"Elliotte\",\"lastName\":\"Harold\"}]";
List<People> peopleList = jsonToObject(json);
for (People people : peopleList) {
System.out.println(people.getEmail()+"---"+people.getFirstName()+"---"+people.getLastName());
}
}


/**
* json轉java對象
* @param json
*/
private static List<People> jsonToObject(String json) {
JSONArray jsonArray = JSONArray.fromObject(json);
List<People> peoples = (List<People>) jsonArray.toCollection(jsonArray, People.class);
return peoples;
}


/**
* java對象轉json
* @param list
*/
private static void objectToJson(List<People> list) {
JSONArray jsonStr = JSONArray.fromObject(list);
System.out.println(jsonStr);
}

}




另一種是通過Jackson的ObjectMapper類


package test;


import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import entity.People;


public class JsonToObject2 {


public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();

/**
* 通過jackson將json格式的list轉java對象
*/
String json = "[{\"email\":\"aaaa\",\"firstName\":\"Brett\",\"lastName\":\"McLaughlin\"},"
+ "{\"email\":\"bbbb\",\"firstName\":\"Jason\",\"lastName\":\"Hunter\"},"
+ "{\"email\":\"cccc\",\"firstName\":\"Elliotte\",\"lastName\":\"Harold\"}]";
try {
People[] peoples = mapper.readValue(json, People[].class);
for (People people : peoples) {
System.out.println(">"+people.getEmail()+"---"+people.getFirstName()+"---"+people.getLastName());
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


/**
* 通過jackson將java對象轉json格式的list
*/
People people1 = new People("Brett","McLaughlin","aaaa");
People people2 = new People("Jason","Hunter","bbbb");
People people3 = new People("Elliotte","Harold","cccc");
List<People> list = new ArrayList<People>();
list.add(people1);
list.add(people2);
list.add(people3);
String jsonStr;
try {
jsonStr = mapper.writeValueAsString(list);
System.out.println(jsonStr);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}


}


發佈了37 篇原創文章 · 獲贊 21 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章