Google Gson 解析字符串数组和字符串列表

x33g5p2x  于2021-12-25 转载在 Go  
字(1.2k)|赞(0)|评价(0)|浏览(675)

本文内容大多基于官方文档和网上前辈经验总结,经过个人实践加以整理积累,仅供参考。

String 类型数组和 String 类型列表的 JSON 字符串表示是一致的,如

["Beijing","Shanghai","Guangzhou","Chengdu"]

解析如上 JSON 字符串即可以使用 String 类型数组,也可以使用 String 类型列表

1 使用 String 类型数组解析

@Test
public void test() {
    Gson gson = new Gson();
    String jsonStr = "[\"Beijing\",\"Shanghai\",\"Guangzhou\",\"Chengdu\"]";
    String[] jsonArray = gson.fromJson(jsonStr, String[].class);
    assertTrue(jsonArray.length == 4);
    for (String item : jsonArray) {
        if (!item.equals("Beijing")
            && !item.equals("Shanghai")
            && !item.equals("Guangzhou")
            && !item.equals("Chengdu")) {
            fail();
        }
    }
}

2 使用 String 类型列表解析

@Test
public void test() {
    Gson gson = new Gson();
    String jsonStr = "[\"Beijing\",\"Shanghai\",\"Guangzhou\",\"Chengdu\"]";
    List<String> jsonList = gson.fromJson(jsonStr, new TypeToken<List<String>>() {}.getType());
    assertTrue(jsonList.size() == 4);
    for (String item : jsonList) {
        if (!item.equals("Beijing")
            && !item.equals("Shanghai")
            && !item.equals("Guangzhou")
            && !item.equals("Chengdu")) {
            fail();
        }
    }
}

相关文章