日期:2014-05-17 浏览次数:20660 次
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
public class JSonTest {
public static void main(String[] args) {
// 给定的JSon有问题
//String strJSon = "{\"dtoName\":\"dtoName\",[\"name\":\"fatherName\",\"age\":1,\"son1Name\":\"son1Name\"]}";
Gson gson = new Gson();
DTO dto = new DTO();
dto.dtoName = "dtoName";
List<Father> sonList = new ArrayList<Father>();
Father f = new Father();
f.name = "fatherName";
f.age = 1;
Son1 s = new Son1();
s.son1Name = "son1Name";
sonList.add(f);
sonList.add(s);
dto.sonList = sonList;
String strJSon = gson.toJson(dto);// 获得正确的json 字符串的格式
System.out.println(strJSon);
// json字符串转换为对象
DTO dto2 = gson.fromJson(strJSon, DTO.class);
List<Father> sonList2 = dto2.sonList;
// 检测
System.out.println("dtoName:"+dto2.dtoName);
for(Father tmp:sonList2){
System.out.println(tmp);// 第二次的打印会当做Father处理
}
// 强转个对象
Son1 son12 = (Son1)sonList2.get(1);// 这里会抛异常,说明json处理后,只保留了Son1的Father属性
System.out.println(son12);
}
}