轉:json和list、bean之間轉換總結
//方法一,將json解析後賦給單獨的元素 String jstr="{'json':'jsonvalue','bool':true,'int':1,'double':'20.5'}";
JSONObject json=JSONObject.fromObject(jstr);
boolean bool=json.getBoolean("bool");
int i=json.getInt("int");
double d=json.getDouble("double");
String value=json.getString("json");
System.out.println("bool="+String.valueOf(bool)+"\tjson="+value+"\tint="+i+"\tdouble="+d);
//方法二,json物件和bean物件之間相互轉換 //假如你是有一個bean物件 class User{
private String name;
private String psw;
//封裝getter/setter省略 }
//把一個json物件變成user String u="{'name':'sail331x','psw':'123456789'}";
//用user物件接收json中的元素 User user=(User)JSONObject.toBean(JSONObject.fromObject(u),User.class);
//把一個user變成json物件: JSONObject juser=JSONObject.fromObject(user);
//json字串jstr String jstr=juser.toString();
//方法三,json物件直接轉list集合、list集合轉json物件 //宣告一個Person 實體類: import java.util.Date;
public class Person {
String id;
int age;
String name;
Date birthday;
//get,set方法省略 }
//測試json資料轉換 import java.util.Iterator;
import java.util.List;
import org.junit.Test;
import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
public class JsonToList {
public static void main(String[] args) {
String json="[{'name':'zhuangsan','age':18},{'name':'lisi','age':20}]";
JSONArray jsonarray = JSONArray.fromObject(json);
System.out.println(jsonarray);
List list = (List)JSONArray.toCollection(jsonarray, Person.class);
Iterator it = list.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println(p.getAge());
}
}
@Test
public void jsonToList1(){
String json="[{'name':'zhuangsan','age':18},{'name':'lisi','age':20}]";
JSONArray jsonarray = JSONArray.fromObject(json);
System.out.println(jsonarray);
List list = (List)JSONArray.toList(jsonarray, Person.class);
Iterator it = list.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println(p.getAge());
}
}
@Test
public void jsonToList2(){
String json="[{'name':'zhuangsan','age':20},{'name':'lisi','age':18}]";
JSONArray jsonarray = JSONArray.fromObject(json);
System.out.println(jsonarray);
System.out.println("------------");
List list = (List)JSONArray.toList(jsonarray, new Person(), new JsonConfig());
Iterator it = list.iterator();
while(it.hasNext()){
Person p = (Person)it.next();
System.out.println(p.getAge());
}
}
}
//將list物件轉為JSON字串陣列: import java.util.LinkedList;
import java.util.List;
import net.sf.json.JSONArray;
public class ListToJson {
public static void main(String[] args) {
List list = new LinkedList();
for(int i=0;i<3;i++){
Person p = new Person();
p.setAge(i);
p.setName("name"+i);
list.add(p);
}
JSONArray jsonarray = JSONArray.fromObject(list);
System.out.println(jsonarray);
}
}
JSONObject json=JSONObject.fromObject(jstr);
boolean bool=json.getBoolean("bool");
int i=json.getInt("int");
double d=json.getDouble("double");
String value=json.getString("json");
System.out.println("bool="+String.valueOf(bool)+"\tjson="+value+"\tint="+i+"\tdouble="+d);