如何使用 Google Json 解析 API (Gson) 解析 json 中的一些动态字段?

2024-01-28

我有一个结构化的 Json 在某些字段中是可变的,如何使用 Gson google json api 在 Java 中正确解析(反序列化)它?

Json 示例:

{ 
type: 'sometype',
fields: {
    'dynamic-field-1':[{value: '', type: ''},...],
    'dynamic-field-2':[{value: '', type: ''},...],
...
}

动态字段将根据发送的结构更改其名称。

有办法吗?


您可以按照 Raph Levien 的建议使用自定义(反)序列化,但是,Gson 本身就可以理解映射。

如果运行此命令,您将得到输出 {"A":"B"}

Map<String, String> map = new HashMap<String, String>();
map.put("A", "B");
System.out.println(new Gson().toJson(src));

地图现在可以包含您的动态键。要再次读取该 Json,您需要通过 TypeToken 告诉 Gson 有关类型信息,这是 Gson 记录 Java 擦除的运行时类型信息的方式。

Map fromJson = 
    new Gson().fromJson(
        "{\"A\":\"B\"}", 
        new TypeToken<HashMap<String, String>>() {}.getType());
System.out.println(fromJson.get("A"));

我希望这有帮助。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Google Json 解析 API (Gson) 解析 json 中的一些动态字段? 的相关文章

随机推荐