【问题标题】:How to delete non text characters, new line, tab, etc, from params of JSON string如何从 JSON 字符串的参数中删除非文本字符、换行符、制表符等
【发布时间】:2018-05-29 04:51:59
【问题描述】:

我有可能包含\n\t 的 JSON 字符串,我不想将它们保存到数据库中。 strip_tags 仅对简单字符串有帮助。我正在使用gsub(/(\\n)|(\\t)/, "")

我想知道是否有其他 Rails 辅助方法或更好的方法来实现这一点。

例如

"[{\"type\":\"checkbox-group\",\"label\":\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nFill in\\nthe Gap (Please\\nfill in the blank box with correct wor\",\"name\":\"checkbox-group-1527245153706\",\"values\":[{\"label\":\"Option 1\",\"value\":\"option-1\",\"selected\":true}]},{\"type\":\"text\",\"label\":\"\\n\\t\\t\\n\\t\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\tWhat are the unique features of\\ne-commerce, digital markets, and\\ndigital goods? \\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\",\"className\":\"form-control\",\"name\":\"text-1527245426509\",\"subtype\":\"text\"}]"

【问题讨论】:

  • 你能举个例子吗?
  • "可能包含 \n, \t" 的 JSON 字符串 – 您要删除格式还是其数据包含这些字符?
  • @Sunny 我已经添加了 JSON 字符串的示例参数。
  • @Stefan 我想删除这些字符。
  • 这些制表符和换行符从何而来?

标签: ruby-on-rails json ruby


【解决方案1】:

您可以使用squishsquish!

"  Some text \n\n and a tab \t\t with new line \n\n  ".squish
#=> "Some text and a tab with new line"

Squish 删除两端的所有空白字符并将剩余的空白字符(\n\tspace)分组到一个空格中

【讨论】:

  • 仅供参考 squish 相当于 str.gsub(/[[:space:]]+/, ' ').strip
  • @Deepak 在我的情况下,squishsquish! 都没有帮助。
【解决方案2】:

我觉得这个可以帮到你,

JSON.parse(string).map{ |a| a['label'] = a['label'].squish; a}

【讨论】:

    猜你喜欢
    • 2017-08-23
    • 2012-06-01
    • 1970-01-01
    • 2013-06-24
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多