通json方式利用Gson解析数据
实体类
public class Grade {
String course;
int score;
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
public class Students {
String name;
List<Grade> gradeList;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Grade> getGradeList() {
return gradeList;
}
public void setGradeList(List<Grade> gradeList) {
this.gradeList = gradeList;
}
}
主类
//String jsonData = "{'name':'John', 'age':20,'grade':{'course':'English','score':100,'level':'A'}}";
String jsonData = "[{'name':'John', 'grade':[{'course':'English','score':100},{'course':'Math','score':78}]},{'name':'Tom', 'grade':[{'course':'English','score':86},{'course':'Math','score':90}]}]";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
JsonParser jsonParser = new JsonParser();
JsonArray jsonArray= jsonParser.parse(jsonData).getAsJsonArray();
// JsonObject jsonObject = (JsonObject) jsonArray.get(1);
Gson gson = new Gson();
List<Students> list = gson.fromJson(jsonArray,new TypeToken<List<Students>>(){}.getType());
Log.i("---",list.get(1).getName());
// Students stu = gson.fromJson(jsonObject,Students.class);
// Log.i("---", stu.getName());
}
可以通过JsonElement jsonElement = jsonObj.get(value); 得到节点
再 JsonArray jsonArray = jsonElement.getAsJsonArray(); 或者得到 jsonobject
还有 另外的 jsonobject.has(String s) 判断是否存在此节点
另附 Gson 解析工具类
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException;
import java.lang.reflect.Type;
/**
* Description : Json转换工具类
*/
public class JsonUtils {
private static Gson mGson = new Gson();
/**
* 将对象准换为json字符串
* @param object
* @param <T>
* @return
*/
public static <T> String serialize(T object) {
return mGson.toJson(object);
}
/**
* 将json字符串转换为对象
* @param json
* @param clz
* @param <T>
* @return
*/
public static <T> T deserialize(String json, Class<T> clz) throws JsonSyntaxException {
return mGson.fromJson(json, clz);
}
/**
* 将json对象转换为实体对象
* @param json
* @param clz
* @param <T>
* @return
* @throws JsonSyntaxException
*/
public static <T> T deserialize(JsonObject json, Class<T> clz) throws JsonSyntaxException {
return mGson.fromJson(json, clz);
}
/**
* 将json字符串转换为对象
* @param json
* @param type
* @param <T>
* @return
*/
public static <T> T deserialize(String json, Type type) throws JsonSyntaxException {
return mGson.fromJson(json, type);
}
}