Fél*_*lli 21 ruby string json escaping
该json
宝石不允许直接编码字符串到他们的JSON表示.我暂时移植了这个PHP代码:
$text = json_encode($string);
Run Code Online (Sandbox Code Playgroud)
对这个Ruby:
text = string.inspect
Run Code Online (Sandbox Code Playgroud)
并且它似乎完成了这项工作,但出于某种原因,如果它string
本身包含带有换行符的文字字符串(它实际上是JS代码),这些新\n
行将保持原样\n
,不进行编码\\n
.我能理解这是否是正确的行为#inspect
,但......
如何在Ruby中将字符串值编码为其JSON表示?
Joh*_*ohn 20
这适用于库存1.9.3+标准库JSON:
require 'json'
JSON.generate('foo', quirks_mode: true) # => "\"foo\""
Run Code Online (Sandbox Code Playgroud)
没有quirks_mode: true
,你会得到荒谬的"JSON :: GeneratorError:只允许生成一代JSON对象或数组".
Tha*_*hai 13
从Ruby 2.1开始,你可以
require 'json'
'hello'.to_json
Run Code Online (Sandbox Code Playgroud)