当前位置: 首页 > 编程笔记 >

详解json串反转义(消除反斜杠)

谢灵均
2023-03-14
本文向大家介绍详解json串反转义(消除反斜杠),包括了详解json串反转义(消除反斜杠)的使用技巧和注意事项,需要的朋友参考一下

JSon串在被串行化后保存在文件中,读取字符串时,是不能直接拿来用JSON.parse()解析为JSON  对象的。因为它是一个字符串,不是一个合法的JSON对象格式。例如下面的JSON串保存在文件中,读出来不能直接解析:

“{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"process4\",\"name\":\"\",\"documentation\":\"\",\"processformtemplate\":\"\"}}"

这个串如果出现在代码中是没有问题的,因为反斜杠就表示转义,但如果从文本文件中直接读出来就是这个样子,则不能直接用JSON.parse()进行解析,需要反串行化,消除掉反斜杠。有些programmer喜欢自己写一个工具类来做这样的事情,但已经有方便快捷的工具类可以来做这件事情,毋需我们重复发明车轮子。

可以直接使用Apache 的 common.lang工具包(使用工具类:org.apache.commons.lang.StringEscapeUtils)。例子如下:

 public void test(){
 String str1 = "{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"process4\",\"name\":\"\",\"documentation\":\"\",\"processformtemplate\":\"\"}}";
 String tmp = StringEscapeUtils.unescapeJavaScript(str1);
 System.out.println("tmp:" + tmp);
 }


输出:

tmp:{"resourceId":"51ad70e41c5c11e88514000c290cdcfa","properties":{"process_id":"process4","name":"","documentation":"","processformtemplate":""}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 假设我有一个字符串,它是另一个字符串的反斜杠转义版本。在Python中,有没有一种简便的方法可以对字符串进行转义?例如,我可以这样做: 但是,这涉及将(可能不受信任的)字符串传递给eval(),这是安全隐患。标准库中是否有一个函数可以接收一个字符串并生成一个不涉及安全性的字符串? 问题答案:

  • 问题内容: 假设我有一个字符串,它是另一个字符串的反斜杠转义版本。在Python中,有没有一种简便的方法可以对字符串进行转义?例如,我可以这样做: 但是,这涉及将(可能不受信任的)字符串传递给eval(),这是安全隐患。标准库中是否有一个函数可以接收一个字符串并生成一个不涉及安全性的字符串? 问题答案:

  • 本文向大家介绍如何在Python中取消转义的反斜杠字符串?,包括了如何在Python中取消转义的反斜杠字符串?的使用技巧和注意事项,需要的朋友参考一下 有两种方法可以在Python中转义反斜杠转义的字符串。首先是使用literal_eval评估字符串。请注意,在此方法中,您需要将字符串用另一层引号引起来。例如: 另一种方法是使用字符串类中的decode('string_escape')方法。例如,

  • 我想使用方法发送POST请求,但是我的JSON有一些国际字符,比如surunn。 不幸的是,我的WebAPI在从格式解码这个字符串时遇到了一些问题:。 使用时,我的API可以很好地处理非转义字符串和unicode转义字符串:。 我尝试了此操作,但在将转换为unicode后,转义了: 我有两个反斜杠字符串: 我试图用一个反斜杠替换两个反斜杠,但没有成功: 我该如何替换它们?

  • 我写了一个小函数,将Windows路径“转换”为OSX路径,并在Finder中打开它。该函数与bash完美配合,但与zsh(我使用的是oh-my-zsh)不配合。 问题是,它会解析特定的反斜杠组合,例如:、、、

  • 问题内容: 给定代码: 输出如下: 调试大型json文档时,很难读懂- 使用Newtonsoft.Json的内置功能(不是正则表达式或可能会破坏事情的hack),可以通过任何方式使输出字符串成为有效值: 问题答案: 查看值时,在调试器中看到的是应该在C#文件中使用以获得相同值的字符串值。 确实可以替换 与 而不更改程序的行为。 因此,要获得不同的值,您应该更改JsonConvert的工作方式,但是