gson

1、toJson:对象--> json字符串

User user = new User(123,"zy");

Gson gson =new Gson();
String str = gson.toJson(user); //转换后是String类型,输出是json字符串{"123":"zy}

注:入参是map时,如果value为null,则该字段被舍弃

2、fromJson:json字符串-->解析为其他类型(转换后的类型明确)

//1、普通对象类型 Account
String json = "{\"uid\":\"00001\",\"userName\":\"Freeman\",\"telNumber\":\"13000000000\"}";
Account receiveAccount = gson.fromJson(json, Account.class);

//2、泛型对象类型 List<String>、List<Account>
String listJson = "[{\"uid\":\"00001\",\"userName\":\"Freeman\",\"telNumber\":\"13000000000\"}]";
List receiveAccountList = gson.fromJson(listJson, new TypeToken<List<Account>>(){}.getType()); //json自定义类型器获得类型

3、解析json字符串(不清楚转换后的类型)

复制代码
    //json字符串
        String json = "";

    // json解析器,解析json数据
    JsonParser parser = new JsonParser();
    JsonElement element = parser.parse(json);

        //json类型
        element.isJsonArray();        // [{"text":"嗯","channel":0}, {"text":"嗯嗯","channel":1}]
        element.isJsonPrimitive();    // “字符串”
        element.isJsonObject();       // {“result”:“哈哈哈”, "age":1”}

        // 转化为json对象
    JsonObject object = element.getAsJsonObject();  

        // 1. value为string时,取出string
        String sex = object.get("sex").getAsString();                         

        // 2. value为object时,取出object
        JsonObject introduce = object.getAsJsonObject("introduce");
        String name = introduce.get("name").getAsString();
        int age = introduce.get("age").getAsInt();
复制代码

4、判断json中是否含某个key

        JsonObject jsonObject = new Gson().fromJson(jsonStr, JsonObject.class);
            if (!jsonObject.has(key)) {
                return false;
            }
                     return true;

 

posted @   zhegeMaw  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示