首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Ruby编写未转义的JSON文件

用Ruby编写未转义的JSON文件
EN

Stack Overflow用户
提问于 2021-07-20 23:01:41
回答 1查看 79关注 0票数 0

我很难找到如何在没有转义反斜杠的情况下用ruby编写JSON文件,我需要生成以下JSON内容,以便与Apple的xctestplan格式相匹配:

代码语言:javascript
复制
{
   "key": "ClassName\/testSuperImportant()"
}

我有以下(简化的) ruby代码,其结果是双转义反斜杠:

代码语言:javascript
复制
require 'json'

testname = "ClassName.testSuperImportant"

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

puts JSON.pretty_generate(testplan)

输出

代码语言:javascript
复制
{
  "key": "ClassName\\/testSuperImportant()"
}

这些"\/"的任何变体,'\/'只产生一个斜杠,如:"ClassName/testSuperImportant()"

我没有太多的红宝石经验,所以我相信必须有一个聪明或简单的方法来做到这一点。这不需要在JSON字符串中完成,它可以通过修改之后的字符串来完成,但是到目前为止,putsprint保留了我不想要的双转义或非转义结果。

任何帮助都是非常感谢的,非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2021-07-21 21:49:39

由于一些奇怪的原因,JSON允许转义斜杠,尽管它不是一个保留字符。但实际上没有必要逃避它,因为,正如我所写的,它不是一个保留的字符。

所以,你可以

代码语言:javascript
复制
require 'json'

testname = 'ClassName.testSuperImportant'

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

puts JSON.pretty_generate(testplan)
# {
#   "key": "ClassName/testSuperImportant()"
# }

它实际上和你的文档是一样的,只是有一个不同的表示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68462266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档