定义三个json字符串
- 本文主要介绍了json对象与java对象从简单到复杂之间的转换
import java.util.Arrays;
import java.util.List;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class TestJson {
public static void main(String[] args) {
final String jsonStr = "{\"birdName\":\"bage\",\"birdAge\":2}";
final String jsonStrArr = "[{\"birdName\":\"bage\",\"birdAge\":2},{\"birdName\":\"yanzi\",\"birdAge\":5}]";
final String jsonStrComplex = "{\"ownName\":\"david\",\"ownAge\":27,\"animal\":{\"animalName\":\"bird\",\"code\":1},\"birds\":[{\"birdName\":\"bage\",\"birdAge\":2},{\"birdName\":\"yanzi\",\"birdAge\":5}]}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
System.out.println("{"+jsonObject.getString("birdName")+":"+jsonObject.getString("birdAge")+"}");
JSONArray jsonArray = JSONArray.parseArray(jsonStrArr);
int size = jsonArray.size();
for (int i = 0; i < size; i++) {
JSONObject obj = (JSONObject) jsonArray.get(i);
System.out.println("["+obj.get("birdName")+","+obj.get("birdAge")+"]");
}
JSONObject jsonObjectComplex = JSONObject.parseObject(jsonStrComplex);
System.out.println("ownName:"+jsonObjectComplex.getString("ownName")+","+"ownAge:"+jsonObjectComplex.getString("ownAge"));
JSONObject jsonObjectAnimal = jsonObjectComplex.getJSONObject("animal");
System.out.println("animalName:"+jsonObjectAnimal.getString("animalName")+","+"code:"+jsonObjectAnimal.getInteger("code"));
JSONArray array = jsonObjectComplex.getJSONArray("birds");
for (Object object : array) {
JSONObject jsonObjectone = (JSONObject) object;
System.out.println("["+jsonObjectone.getString("birdName")+","+jsonObjectone.getString("birdAge")+"]");
}
System.out.println("json to java object");
Bird bird = JSONObject.parseObject(jsonStr, Bird.class);
System.out.println(bird);
List<Bird> birdList = JSONArray.parseArray(jsonStrArr, Bird.class);
for (Bird bird2 : birdList) {
System.out.println(bird2);
}
Ower ower = JSONObject.parseObject(jsonStrComplex, Ower.class);
System.out.println(ower);
}
}
class Bird {
String birdName;
Integer birdAge;
public String getBirdName() {
return birdName;
}
public void setBirdName(String birdName) {
this.birdName = birdName;
}
public Integer getBirdAge() {
return birdAge;
}
public void setBirdAge(Integer birdAge) {
this.birdAge = birdAge;
}
[@Override](https://my.oschina.net/u/1162528)
public String toString() {
return this.getBirdName()+" "+this.getBirdAge();
}
}
class Ower {
String ownName;
Integer ownAge;
Animal animal;
Bird birds[];
public String getOwnName() {
return ownName;
}
public void setOwnName(String ownName) {
this.ownName = ownName;
}
public Integer getOwnAge() {
return ownAge;
}
public void setOwnAge(Integer ownAge) {
this.ownAge = ownAge;
}
public Animal getAnimal() {
return animal;
}
public void setAnimal(Animal animal) {
this.animal = animal;
}
public String getBirds() {
return Arrays.toString(birds);
}
public void setBirds(Bird[] birds) {
this.birds = birds;
}
[@Override](https://my.oschina.net/u/1162528)
public String toString() {
return "{"+this.getOwnName()+","+this.getOwnAge()+","+this.getAnimal()+" "+this.getBirds()+"}";
}
}
class Animal {
String animalName;
Integer code;
public String getAnimalName() {
return animalName;
}
public void setAnimalName(String animalName) {
this.animalName = animalName;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
[@Override](https://my.oschina.net/u/1162528)
public String toString() {
return "{"+this.getAnimalName()+","+this.getCode()+"}";
}
}