gpt4 book ai didi

java - 根据 FieldNamingPolicy 重命名 GSON 中的映射键

转载 作者:太空宇宙 更新时间:2023-11-04 14:22:19 24 4
gpt4 key购买 nike

假设我正在像这样构建我的 GSON 对象

new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();

现在我想反序列化以下 JSON

{
"MyMap" : {
"Key1" : "Foo",
"Key2" : "Bar"
}
}

进入下面的类(运行良好)

public class MapClass {
Map<String,String> myMap;
}

但我也希望将键命名为“key1”和“key2”。我该怎么办?

最佳答案

你可以这样尝试:

try {
JSONObject jObj = new JSONObject("{"
+ " \"MyMap\" : {"
+ " \"Key1\" : \"Foo\","
+ " \"Key2\" : \"Bar\""
+ " }"
+ "}"); // this parses the json
JSONObject jObjt = jObj.getJSONObject("MyMap");

//old version with out GSON
Map<String, String> map = new HashMap();
Iterator itr = jObjt.keys();
while (itr.hasNext()) {
String key = (String) itr.next();
String value = jObjt.getString(key);
map.put(key, value);
}

//desalinized one with GSON
Map<String, String> map1 = new Gson().fromJson(jObjt.toString(), HashMap.class);
for (String str : map1.keySet()) {
System.out.println("k:" + str + " v:" + map1.get(str));
}


} catch (JSONException ex) {
//log the error
}

关于java - 根据 FieldNamingPolicy 重命名 GSON 中的映射键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27059815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com