java - 在 JSON 字符串中添加双引号的简单方法

标签 java json string spring double-quotes

我正在尝试写一些返回一些 search suggestion 的东西结果。

假设我有一个像这样的字符串:

"[Harry,[harry potter,harry and david]]"

格式类似于 [A_STRING,A_STRING_ARRAY_HERE]。

但我希望输出格式是这样的

[ "Harry",["harry potter","harry and david"]]

这样我就可以将它放入 HTTP 响应正文中。

有没有一种简单的方法可以做到这一点,我不想从头开始为单个字符串添加“”。

最佳答案

演示

String text = "[Harry,[harry potter,harry and david]]";
text = text.replaceAll("[^\\[\\],]+", "\"$0\"");

System.out.println(text);

输出:["哈利",["哈利波特","哈利和大卫"]]


说明:
如果我理解正确,您希望用双引号将所有非 [-and-]-and-, 字符系列括起来。在这种情况下,您只需将 replaceAll 方法与正则表达式 ([^\\[\\],]+) 结合使用,其中

  • [^\\[\\],] - 表示不是 [] 的一个非字符, (逗号)
  • [^\\[\\],]+ - + 表示其前面的元素可以出现一次或多次,在这种情况下,它代表一个或多个不是 [],(逗号)
  • 的字符

现在在替换中我们可以围绕 group 的匹配0(整个匹配)由带有双括号 "$0"$0 表示。顺便说一句,因为 " 是字符串中的元字符(它用于开始和结束字符串),如果我们想创建它的文字,我们需要对其进行转义。为此,我们需要放置 \ 之前,因此最后代表 "$0" 的字符串需要写为 "\"$0\""

有关 $0 使用的组 0 的更多说明(引自 https://docs.oracle.com/javase/tutorial/essential/regex/groups.html ):

There is also a special group, group 0, which always represents the entire expression.

关于java - 在 JSON 字符串中添加双引号的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26936156/

相关文章:

java - 移动可绘制对象和 Imageview 布局的问题

java - 使用 EDT 调度简单事件的必要性

json - 使用Shapeless HList轻松构建Json Decoder

c# - 在 C# 中从 SQL 表结果格式化 JSON

c# - 如何在不区分大小写的模式下使用 HashSet<string>.Contains() 方法?

python - 通过字符串中的其他字符更改多个字符

java - 如何使用 Hibernate Context session 创建通用 DAO 类

json - Swift3:Openweather API 返回 nil 和 API 错误

c - C语言打印字符的程序

Java SSL - 使用 pkcs12 (.p12) 文件连接到安全 Rest 服务