Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 将JSON转换为YAML-获取错误_Ruby_Json_Yaml_Open Uri - Fatal编程技术网

Ruby 将JSON转换为YAML-获取错误

Ruby 将JSON转换为YAML-获取错误,ruby,json,yaml,open-uri,Ruby,Json,Yaml,Open Uri,我是ruby新手,使用JSON和YAML等格式。我正在尝试将从StackEexchange API(JSON格式)获取的数据转换为YAML格式 这是我试图转换的数据: 我在StackOverflow中看到了一些其他帖子,我想首先尝试将JSON转换为哈希,然后再将哈希转换为YAML。我尝试了以下方法: require 'open-uri' require 'json' io = open('http://api.stackexchange.com/2.2/tags/html/top-answer

我是ruby新手,使用JSON和YAML等格式。我正在尝试将从StackEexchange API(JSON格式)获取的数据转换为YAML格式

这是我试图转换的数据:

我在StackOverflow中看到了一些其他帖子,我想首先尝试将JSON转换为哈希,然后再将哈希转换为YAML。我尝试了以下方法:

require 'open-uri'
require 'json'
io = open('http://api.stackexchange.com/2.2/tags/html/top-answerers/month?site=stackoverflow')
body = io.read[0, 100]
puts JSON.parse(body).to_yaml
但我有一个错误:

/../ruby/2.1.0/json/common.rb:155:in `parse': 399: unexpected token at '{"has_synonyms":true,"is_moderator_only":false,"is_required":false,"count":284459,"name":"' (JSON::ParserError)
    from /home/../.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/json/common.rb:155:in `parse'
    from a.rb:29:in `<main>'
/../ruby/2.1.0/json/common.rb:155:in`parse':399:{“has_同义词”:true,“is_mediator_only”:false,“is_required”:false,“count”:284459,“name:”(json::parserror)
from/home/./.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/json/common.rb:155:in'parse'
从a.rb:29:in`'

我不确定是否有直接的方法将JSON转换为YAML。如果有,请帮助我。

你为什么要做
io.read[0100]
io.read[01100]
我猜io是字符串,你刚刚剪切了它,显然它不能正确解析它。或者它不是?你的
io.read[0100]是在某个东西的中间截断JSON,所以你的<代码>正文< /代码>不再是JSON,它只是JSON Strue.Ya的一部分。可能会检查它。感谢有时候,浏览器会很好地打印JSON和STIP,从双引号中删除可能导致丢失的令牌错误。确保您正在抓取原始JSON源,然后您可以尝试一个站点。与编写请求之前一样,确保json有效