使用ruby编写未缩放的json文件

72qzrwbm  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(325)

我正在努力弄清楚如何在ruby中编写json文件而不使用转义反斜杠,我需要生成以下json内容,以便与apple的xctestplan格式相匹配:

{
   "key": "ClassName\/testSuperImportant()"
}

我有以下(简化的)ruby代码,它会导致双转义反斜杠:

require 'json'

testname = "ClassName.testSuperImportant"

testplan = {
  :key => testname.sub('.', "\\/") + "()"
}

puts JSON.pretty_generate(testplan)

输出

{
  "key": "ClassName\\/testSuperImportant()"
}

这些有什么变化吗 "\/" , '\/' 只需生成一条如下所示的斜线: "ClassName/testSuperImportant()" 我没有太多的ruby经验,所以我相信一定有一个聪明或简单的方法来实现它。它不必在json字符串中完成,可以在以后修改字符串,但到目前为止 putsprint 保留我不想要的双重或非转义结果。
任何帮助都将不胜感激,谢谢。

hgb9j2n6

hgb9j2n61#

出于某种奇怪的原因,json允许转义斜杠,即使它不是保留字符。但实际上没有必要逃避它,因为正如我所写的,它不是一个保留字符。
所以,你可以这样做

require 'json'

testname = 'ClassName.testSuperImportant'

testplan = {
  key: testname.sub('.', '/') + '()'
}

puts JSON.pretty_generate(testplan)

# {

# "key": "ClassName/testSuperImportant()"

# }

它实际上与您的文档是同一个文档,只是具有不同的表示形式。

相关问题