GSON谷歌方法之:Json解析

import java.util.List;

import org.json.JSONObject;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yz.javabean.Menu;
import com.yz.javabean.Student;
import com.yz.utils.HttpUtils;

public class Demo10_ParseGson {

    public static void main(String[] args) throws Exception {
        String baseUrl1 = "http://10.0.158.239:8080/Day22_Server/JsonServlet?action=student";
        String baseUrl2 = "http://10.0.158.239:8080/Day22_Server/JsonServlet?action=students";
        String json1 = HttpUtils.getJsonFromNetWork(baseUrl1);// {}
        String json2 = HttpUtils.getJsonFromNetWork(baseUrl2);// []
        System.out.println(json1);
        // 谷歌:
        // step1:创建对象
        Gson gson = new Gson();
        // step2:解析
        /**
         * 解析单个对象:{}
         *
         * 第一个参数:String json:要解析的json字符串
         *
         * 第二个参数:Class cls,用于描述将该json字符串,解析为哪种javabean对象。
         */
        Student stu = gson.fromJson(json1, Student.class);
        System.out.println(stu);
        System.out.println("-----------------------------");
        // Type type = new TypeToken>() {
        // }.getType();
        /**
         * 一组对象:[]
         *
         * 第一个参数:String json:要解析的json字符串
         *
         * 第二个参数:Type type:表名解析后的得到的List集合中存储的泛型的类型。new
         * TypeToken<>(){}.getType()
         */
        List list = gson.fromJson(json2, new TypeToken>() {
        }.getType());// List
        for (int i = 0; i < list.size(); i++) {
            System.out.println("--->" + list.get(i));
        }

        System.out.println("--------------");
        String json3 = HttpUtils
                .getJsonFromNetWork("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&page=1&limit=20");
        parseGson(json3);
    }

    public static List
parseGson(String json) throws Exception {
        // 使用原生的解析方式获取到data对应[]--->
        // JSONObject jsonObject = new JSONObject(json);
        // JSONArray jsonArray = jsonObject.getJSONArray("data");
        // String subJson = jsonArray.toString();
        // System.out.println(subJson);
        // List
list = gson.fromJson(subJson, new TypeToken>()
        // {
        // }.getType());
        Gson gson = new Gson();
        List
list = gson.fromJson(new JSONObject(json).getJSONArray("data").toString(),
                new TypeToken>() {
                }.getType());
        return list;
    }

}


GitHub:  https://github.com/HuaDanJson


你可能感兴趣的:(GSON谷歌方法之:Json解析)