• 解析JSON的三种方式


    JSONObject  
       JSONObject jsonObject = new JSONObject(strJson);
    JSONArray jsonArray = jsonObject.getJSONArray("data");
    {}  Jsonstr      bean      bean1....

    []

    大括号{}
    Gson gson = new Gson();
    bean  b1 = gson.fromJson(Jsonstr,bean.class)


    中括号[]:
     Gson gson = new Gson();
    List<bean>  list = gson.fromJson(jsonString, new TypeToken<List<bean.class>>() {}.getType());


    Gson:

    使用泛型获取javaBean(核心函数)

    (1),对象类型数据
    public static <T> T getPerson(String jsonString, Class<T> cls) {
            T t = null;
            try {
                Gson gson = new Gson();
                t = gson.fromJson(jsonString, cls);

            } catch (Exception e) {
                // TODO: handle exception
            }
            return t;
        }
    (2),集合类型数据
    public static <T> List<T> getPersons(String jsonString, Class<T> cls) {
            List<T> list = new ArrayList<T>();
            try {
               Gson gson = new Gson();
                list = gson.fromJson(jsonString, new TypeToken<List<cls>>() {
                }.getType());

            } catch (Exception e) {
            }
            return list;
        }
    (3),集合中含map类型数据
    public static List<Map<String, Object>> listKeyMaps(String jsonString) {
            List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
            try {
                Gson gson = new Gson();
                list = gson.fromJson(jsonString,
                        new TypeToken<List<Map<String, Object>>>() {
                        }.getType());

            } catch (Exception e) {
                // TODO: handle exception
            }
            return list;
        }

    eg:
    public static Mode getJson2(String json){

    Gson gson = new Gson();
    Mode mode = gson.fromJson(json, Mode.class);

    return mode;
    }





    FastJson:

    (1),集合类型数据
     List<T> datas = JSON.parseArray(str,T.class):解析一个数组    {jsonArray} [,,,,,,]
    (2),对象类型数据
      T t = JSON.parseObject(str,T.class):解析一个对象  {jsonObject}  {}




    FastJson对象的知识点:

    fastjson 是一个性能极好的用 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。

    主要特点

    • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson

    • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)

    • 零依赖(没有依赖其它任何类库除了JDK)


    一 、生成Json:
    JavaBean、List<JavaBean>、List<String>、List<Map<String,Object>>

    1. String jsonString = JSON.toJSONString(obj);  

    二、解析Json:
    (1)JavaBean
                Class class= JSON.parseObject(jsonString, Class.class);  
    (2)List<JavaBean
                List<Class> class=JSON.parseArray((jsonString, Class.class);  
    (3)List<String>
                List<String> listString = JSON.parseArray(jsonString, String.class);  
    (4)List<Map<String,Object>>
            List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new                                TypeReference<List<Map<String,Object>>>(){});  

  • 相关阅读:
    力扣 136. 只出现一次的数字
    剑指 Offer 24. 反转链表
    javaWeb8——jdbc总结,JDBC调用存储过程和存储函数:CallableStatement
    剑指 Offer 53
    剑指 Offer 53
    使用 .NET Core 3.x 构建 RESTFUL Api
    SqlServer 多表连接、聚合函数、模糊查询、分组查询应用总结(回归基础)
    SqlServer 查询的几种方式以及数字函数、时间函数的应用总结(回归基础)
    关于SqlServer表结构 2(回归基础)
    关于SqlServer那些事1(回归基础)
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152281.html
Copyright © 2020-2023  润新知