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

标签 java json gson

我想将字符串转换为 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/

相关文章:

java - Spring 配置 : No mapping found for HTTP request with URI in DispatcherServlet with name 'dispatcherServlet'

java - Arrays 类型中的方法 asList(T[]) 不适用于参数 (int, int)

java - 使用 Selenium ChromeDriver 设置 Chrome 的语言

android - 如何为 Gson Expose 注释添加支持字段

android - 反序列化时出现 Gson 异常(无参数构造函数不存在)

java - 如何访问 Collection Generic Type 类

javascript - 如何使用jquery读取json格式的数据

javascript - 尝试从对象获取属性时为 "Uncaught TypeError: Cannot read property ' x ' of undefined"

javascript - Waterline:按 JSON 中的值查找

java - 仅解析大型 JSON 字符串中的一个字段