ITprivate 2020-02-12
今天的学习内容为:使用GSON解析我们的JSON字符串!
在我们的Android Studio 中 Google已经离线了我们的GSON jer包。让我们看一下jer包的地址:
C:\Users\计算机名称\AppData\Local\Android\Sdk\tools\lib
这就是我们的离线地址了。我们只需要直接进行引用就可以了。
因为Google给我们离线的是GSON2.3的版本。这样我们该可以直接在我们的Android的build.gradle
中直接添加我们的GSON依赖。
代码如下所示:implementation ‘com.google.code.gson:gson:2.3‘
。
首先在我们地添加完成依赖包后,我们就可以实例化我们的GSON了。
按照国际惯例!先看一下源代码:
class User { String name; String gender; public User(String name, String gender) { this.name = name; this.gender = gender; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } }
我们先是创建了我们的User Model类。
创建完成后我们再添加数据!
//为实体类添加数据 User userObject = new User("曹佳豪", "男");
添加完成后我们我们就可以使用Gson来生成JSON字符串了。
这样我们最最基础的使用GSON生成JSON字符串就完成了。
然后我们在看一下如何将我们你的JSON字符串转换为我们的数据。
首先获取到我们的JSON字符串,然后在将我们的字符串通过GSON转换为我们的数据,看一下源代码:
User userData = gson.fromJson(jsonStr, User.class);
这样我们就可以将我们的json字符串转换为我们的数据了。
这样我们的基础操作就完成了
首先我们显示创建了我们的模拟数据源,很简单:
List<User> usersList = new ArrayList<>(); int a = 5; for (int i = 0; i < a; i++) { usersList.add(new User("曹佳豪", "男")); }
我们可以看到,这里我在list中添加了五组数据 。
然后我们通过gson的toJson方法将其转换为我们的JSON字符串,String userJson = gson.toJson(usersList);
这样我们的转换就完成了。
然后我们看一下如何将json字符串转为我们的List数据。
List的反序列化
对于List,反序列化是必须要提供我们的Type,通过Gson提供的TypeToken.getType()方法可以定义之前List的Type.
我们来看一下源代码:
Type userListType = new TypeToken<List<User>>() { }.getType(); List<User> userList = gson.fromJson(userJson, userListType);
这样我们的反序列化到List就完成了。
这样我们的Java 使用 GSON就基本完成了。但是这些只是我们的基础。
.create();String param = "xxxxxxx";Map<String, Map<String, List<MpAppInfo>>> inParams = gson.fromJso