java – 用Gson分析JSON地图/字典?
发布时间:2020-12-15 00:05:44 所属栏目:Java 来源:网络整理
导读:我需要解析一下 JSON响应: {"key1": "value1","key2": "value2","key3": {"childKey1": "childValue1","childKey2": "childValue2","childKey3": "childValue3" }}class Egg { @SerializedName("key1") private String mKey1; @SerializedName("key2") priv
我需要解析一下
JSON响应:
{"key1": "value1","key2": "value2","key3": {"childKey1": "childValue1","childKey2": "childValue2","childKey3": "childValue3" } } class Egg { @SerializedName("key1") private String mKey1; @SerializedName("key2") private String mKey2; @SerializedName("key3") // ??? } 我正在阅读Gson文档,但无法弄清楚如何正确地将字典反序列化为地图. 解决方法
Gson很容易处理一个JSON对象的反序列化,其名称为:值对到Java Map.
以下是使用原始问题的JSON的示例. (此示例还演示如何使用FieldNamingStrategy避免为每个字段指定序列化名称,前提是字段到元素的名称映射是一致的.) import java.io.FileReader; import java.lang.reflect.Field; import java.util.Map; import com.google.gson.FieldNamingStrategy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class Foo { public static void main(String[] args) throws Exception { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setFieldNamingStrategy(new MyFieldNamingStrategy()); Gson gson = gsonBuilder.create(); Egg egg = gson.fromJson(new FileReader("input.json"),Egg.class); System.out.println(gson.toJson(egg)); } } class Egg { private String mKey1; private String mKey2; private Map<String,String> mKey3; } class MyFieldNamingStrategy implements FieldNamingStrategy { //Translates the Java field name into its JSON element name representation. @Override public String translateName(Field field) { String name = field.getName(); char newFirstChar = Character.toLowerCase(name.charAt(1)); return newFirstChar + name.substring(2); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |