探索API时如何处理大型JSON数据?

翻动

我经常发现自己开始探索新的API并找回大型JSON对象。而且每次我都努力寻找一种方法来正确显示它们的缩进时,以便我可以轻松地看到结构并确定与任务相关的部分。

现在,我正在探索用于Razberry(家庭自动化)的Z-Wave API。我返回一个JSON,其中包含连接到家庭自动化网络的所有设备。看起来像这样:

在此处输入图片说明

而且我不明白为什么Rails会破坏这里显示的方式,以及为什么它无法正确缩进JSON数据。屏幕截图上的输出是此控制器代码的结果:

request = Net::HTTP::Get.new(uri)
request.basic_auth 'admin', 'bla'

response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end

@devices = JSON.parse(response.body)
render json: @devices

在探索数据结构时,看看现阶段有更多经验丰富的程序员如何处理JSON会很有趣。如何以这种样式显示JSON ?:


{"1":
    {"instances":
        {"0":{
            "commandClasses":
                {"32":
                    {"name":"Basic",
                     "data":
                        {"invalidateTime":1462455293,
                         "updateTime":1462365990,
                         "type":"empty",
                         "value":null,
                         "supported":
                            {"invalidateTime":1462455293,
                             "updateTime":1462365990,
                             "type":"bool",
                             "value":true},
                         "version":


绿色的

您可以使用JSON.pretty_generate()方法:

例子:

require 'json'
my_json = { :array => [1, 2, 3, { :sample => "hash"} ], :foo => "bar" }
puts JSON.pretty_generate(my_json)

输出:

{
  "array": [
    1,
    2,
    3,
    {
      "sample": "hash"
    }
  ],
  "foo": "bar"
}

您的代码:

request = Net::HTTP::Get.new(uri)
request.basic_auth 'admin', 'bla'

response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end

@devices = JSON.parse(response.body)
render json: JSON.pretty_generate(@devices)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章