我正在使用Google的com.google.api.client.json.GenericJson
和com.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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句