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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章