gpt4 book ai didi

java - 在 Java 中转义 JSON 字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:39:12 25 4
gpt4 key购买 nike

我正在使用 Google 的 com.google.api.client.json.GenericJsoncom.fasterxml.jackson.core.JsonGenerator。我想序列化 JSON 对象并转义引号和反斜杠,以便我可以在 Bash 中传递该字符串。然后反序列化该字符串。

GenericJson.toString 生成简单的 JSON,但 \n 等未转义:

{commands=ls -laF\ndu -h, id=0, timeout=0}

有没有一种简单的方法可以得到这样的东西:

"{commands=\"ls -laF\\ndu -h\", id=0, timeout=0}"

我不想重新发明轮子,所以如果可能的话,我想使用 Jackson 或现有的 API。

最佳答案

不需要额外的依赖项:您正在寻找 JsonStringEncoder#quoteAsString(String)

点击查看JsonStringEncoder javadoc

示例:

import com.fasterxml.jackson.core.io.JsonStringEncoder;

JsonStringEncoder e = JsonStringEncoder.getInstance();
String commands = "ls -laF\\ndu -h";
String encCommands = new String(e.quoteAsString(commands));
String o = "{commands: \"" + encCommands + "\", id: 0, timeout: 0}"

引用:http://fasterxml.github.io/jackson-core/javadoc/2.1.0/com/fasterxml/jackson/core/io/JsonStringEncoder.html

关于java - 在 Java 中转义 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21576475/

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