';JSON.parse';替换';:';与'=&燃气轮机';
我有一个字符串:';JSON.parse';替换';:';与'=&燃气轮机';,json,ruby,Json,Ruby,我有一个字符串: {"name":"hector","time":"1522379137221"} 我想将字符串解析为JSON,并期望得到: {"name":"hector","time":"1522379137221"} 我正在做: require 'json' JSON.parse 这就产生了: {"name"=>"hector","time"=>"1522379137221"} 有人能告诉我怎样才能保持:?我不明白为什么在解析json数据后,它会添加=>,您应该可以在正
{"name":"hector","time":"1522379137221"}
我想将字符串解析为JSON,并期望得到:
{"name":"hector","time":"1522379137221"}
我正在做:
require 'json'
JSON.parse
这就产生了:
{"name"=>"hector","time"=>"1522379137221"}
有人能告诉我怎样才能保持
:
?我不明白为什么在解析json数据后,它会添加=>
,您应该可以在正在使用的编程语言中看到它
Ruby使用=>
将键与散列中的值分开(而json使用:
)
因此,ruby输出是正确的,数据已经准备好供您在代码中进行操作。将哈希转换为json时,json库将
=>
转换回:
json没有符号类。因此,JSON数据中没有与Ruby符号对应的内容。在从JSON到Ruby(如JSON.parse)的简单转换下,输出中不能有符号。它会将字符串转换为哈希。那可能是你想要的。(您不需要将字符串“解析为JSON”-JSON是一种字符串格式。您可以将JSON字符串解析为可以使用的格式。)我需要将JSON解析的输出推送到外部api端点,该端点接受:
而不是=>
。您能告诉我哪里可以理解:
和=>
之间的区别吗?如果您需要将JSON发送到外部API,为什么要将其转换为非JSON?只需直接传递JSON字符串。{“a”:1}
与{:“a”=>1}
相同,后者与{:a=>1}
相同。无论您如何定义它,Ruby都将以第二或第三种形式返回它。您确定要将字符串解析为JSON吗?您的示例建议您通过将其解析为JSON将其转换为哈希。