gpt4 book ai didi

java - 字符串到 Json 转义嵌套 json 中的正斜杠

转载 作者:行者123 更新时间:2023-12-02 01:02:53 28 4
gpt4 key购买 nike

我想将字符串转换为 JSON。 java gson 的 JsonObject。该字符串是一个嵌套的 JSON 结构,其中添加了正斜杠 (),如名称中所示,它具有\\"。(一个\表示转义\,一个\表示 "。

如何忽略内部\并转换为 JSON 对象。我尝试使用 ReplaceAll 转义\\"但没有工作,因为它也替换了\"

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Test {
public static void main(String args[]){
String json = "[{\"key\":\"px\",\"mKeyValues\":[{\"hmKey\":\"qx\",\"value\":\"[{\\\"name\\\":\\\"Test Equipment value\\\",\\\"status\\\":\\\"2\\\"}]\"}]}]";
JsonParser jsonParser = new JsonParser();
json = json.replaceAll("\\\\","");
System.out.println(json);
JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject();
System.out.println(jsonObject);
}
}

实际的Json是

[
{
"key": "px",
"mKeyValues": [
{
"hmKey": "qx",
"value": [
{
"name": "Test Equipment value",
"status": "2"
}
]
}
]
}
]

最佳答案

这样就可以了

json = json.replace("\"[","[").replace("]\"", "]").replace("\\\"", "\"");

无需更换的解决方案

    public static void main(String[] args) 
String json = "[{\"key\":\"px\",\"mKeyValues\":[{\"hmKey\":\"qx\",\"value\":\"[{\\\"name\\\":\\\"Test Equipment value\\\",\\\"status\\\":\\\"2\\\"}]\"}]}]";
System.out.println(json);
JsonParser jsonParser = new JsonParser();
JsonArray jsonObject = jsonParser.parse(json).getAsJsonArray();
JsonObject mKeyValues0 = jsonObject.get(0).getAsJsonObject()
.get("mKeyValues").getAsJsonArray()
.get(0).getAsJsonObject();


mKeyValues0.add("value", jsonParser.parse(mKeyValues0.get("value").getAsString() ));

System.out.println(jsonObject);
}

关于java - 字符串到 Json 转义嵌套 json 中的正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60427631/

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