gpt4 book ai didi

java - 使用 GSON 转义字符串反斜杠

转载 作者:行者123 更新时间:2023-12-02 10:08:25 25 4
gpt4 key购买 nike

我正在尝试将 HashMap 转换为 JSON pretty-print 输出。

我尝试了 GSON,并相信它在处理字符串作为 map 内的输入时存在一些问题,还有其他方法可以做到这一点吗?

Map<String, String> map = new LinkedHashMap();
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().setPrettyPrinting().create();
map.put("Intro", Map_to_String);
map.put("Output", String_Val);
System.out.println(gson.toJson(map));

输出:

{
"Intro": {\"No\":0,\"Cast\":2},
"Output": "123"
}

所需输出:

{
"Intro": {"No":0,"Cast":2},
"Output": "123"
}

最佳答案

在本例中,您需要将 Map_to_String 反序列化回对象 - Map,然后再次序列化。

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.LinkedHashMap;
import java.util.Map;

public class GsonApp {

public static void main(String[] args) {
Map<String, Object> map = new LinkedHashMap<>();
Gson gson = new GsonBuilder()
.enableComplexMapKeySerialization()
.setPrettyPrinting()
.create();

String jsonString = "{\"No\":0,\"Cast\":2}";

Type mapType = new TypeToken<Map<String, String>>() {}.getType();
map.put("Intro", gson.fromJson(jsonString, mapType));
map.put("Output", "123");
System.out.println(gson.toJson(map));
}
}

打印:

{
"Intro": {
"No": "0",
"Cast": "2"
},
"Output": "123"
}

关于java - 使用 GSON 转义字符串反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55170841/

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