如何解析dashing.io的JSON数据

时间:2015-12-29 16:05:51

标签: ruby json jira-rest-api dashing

我目前正在为dashing.io板工作JSON解析器。我从HTTP SSL连接获取信息到我的网络服务器。我不知道如何正确地合并我的输出。

这是我的数据示例:

<Interprete xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="try.xsd">

我想创建一个仅列出问题摘要的小部件。我设法得到一个响应,看起来像:

{ expand: "schema, names",
  startAt: 0,
  issues : [
    0 : {
        expand : "information"
        id: "1231425"
        fields : {
            customfield: "something"
            summary: "short summary one issue"
         },
     1 : {
        expand : "information"
        id: "1231426"
        fields : {
            customfield: "something else"
            summary: "short summary of the other issue"
         }
   ]
}

但我需要一个看似如下的回复:

[[{:summary=>"short summary one issue"}], [{:summary=>"short summary other issue"}]]

我的数组源代码是:

[{:summary=>"short summary one issue"}, {:summary=>"[short summary other issue"}]

我的JiraParser类解析响应体,如下所示:

  (0 .. issue_count[:total] - 1).each do |i|
      @issue_summaries[i] = issue_count
         .map { |json_element| jiraParser.to_json_issue(i)}
   end

我是Ruby的新手,所以我对数据类型不太了解等等。

1 个答案:

答案 0 :(得分:2)

你离结果只有一步之遥。你有:

ss = [[{:summary=>"short summary one issue"}], 
      [{:summary=>"short summary other issue"}]]

只是打电话给它:

ss.flatten
#⇒ ss = [{:summary=>"short summary one issue"},
#        {:summary=>"short summary other issue"}]

事实上,您可以摆脱多余的:summary并获取一系列摘要(假设issues包含原始Hash):

issues[:issues].first.map { |_, v| v[:fields][:summary] }
#⇒  [
#  [0] "short summary one issue",
#  [1] "short summary of the other issue"
# ]