一種是通過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();
}
}
}