import java.io.IOException;
import java.util.ArrayList;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fh.panghu.entity.User;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import net.sf.json.JsonConfig;
/**
*
* @author fcbird
* 藉助net.sf.json的第三方jar包幫助類完成實體類與json對象,實體類集合與jsonArray互相轉換
*
*/
public class TestJsonEntityListMap {
@SuppressWarnings("unchecked")
public static void getData() {
JSONObject objec1t = new JSONObject();
JSONObject objec2t = new JSONObject();
JSONArray jsonArray = new JSONArray();
ArrayList<User> users = new ArrayList<User>();
ArrayList<User> users12 = new ArrayList<User>();
JsonConfig jsonConfig = new JsonConfig();
ObjectMapper objectMapper=new ObjectMapper();
User user= new User();
User user12= new User();
//構造數據
user.setDdid("ddid");
user.setMobile("mobile");
user.setUserid("password");
user.setPassword("userid");
user.setUsername("username");
user12.setDdid("ddid1");
user12.setMobile("mobile1");
user12.setUserid("password1");
user12.setPassword("userid1");
user12.setUsername("username1");
objec1t.put("ddid", "ddid1");
objec1t.put("mobile", "mobile1");
objec1t.put("password", "password1");
objec1t.put("userid", "userid1");
objec1t.put("username", "username1");
objec2t.put("ddid", "ddid2");
objec2t.put("mobile", "mobile2");
objec2t.put("password", "password2");
objec2t.put("userid", "userid2");
objec2t.put("username", "username2");
users.add(user);
users.add(user12);
jsonArray.add(objec1t);
jsonArray.add(objec2t);
//實體轉爲JSON對象
//實體轉爲JSON對象第一種
String jsonString1 = JSONSerializer.toJSON(user).toString();
//實體轉爲JSON對象第二種
String jsonString2 = JSONObject.fromObject(user).toString();
//JSON對象轉爲實體
//JSON對象轉爲實體第一種
User user1=(User)JSONObject.toBean(objec1t, User.class);
User user2 = new User();
try {
//JSON對象轉爲實體第二種
user2=objectMapper.readValue(objec1t.toString(), User.class);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//實體類集合轉爲JSONArray
String jsonArrayString = JSONArray.fromObject(users, jsonConfig).toString();
users12 = (ArrayList<User>) JSONArray.toCollection(jsonArray,User.class);
System.out.println("實體轉爲json1:"+jsonString1);
System.out.println("實體轉爲json2:"+jsonString2);
System.out.println("json1轉爲實體:"+user1);
System.out.println("json2轉爲實體:"+user2);
System.out.println("實體集合轉爲jsonArray:"+jsonArrayString);
System.out.println("jsonArray轉爲實體集合:"+users12);
}
public static void main(String[] args) {
getData();
}
}
測試結果截圖: