Arrays Ruby从api响应创建数组

Arrays Ruby从api响应创建数组,arrays,ruby,rest,rest-client,Arrays,Ruby,Rest,Rest Client,如何创建数组或存储对数组的rest api响应 RESTAPI响应 {"functionality":[],"subfunctionality": [{"id":1,"title":"a1","description":"sample}, {"id":2,"title":"a2","description":"sample}, {"id":3,"title":"a3","description":"sample} 我希望结果存储在数组中,如下所示 a[0]={"id":1,"title

如何创建数组或存储对数组的rest api响应

RESTAPI响应

{"functionality":[],"subfunctionality":   [{"id":1,"title":"a1","description":"sample}, 
{"id":2,"title":"a2","description":"sample}, 
{"id":3,"title":"a3","description":"sample}
我希望结果存储在数组中,如下所示

a[0]={"id":1,"title":"a1","description":"sample}
a[1]={"id":2,"title":"a2","description":"sample}
a[2]={"id":3,"title":"a3","description":"sample}]}

为我工作。

我假设您显示的是“RESTAPI响应”。如果是这样,您需要将其清理为有效的JSON字符串,将其转换为哈希,然后提取所需的数组

str =<<_
{ "functionality":[], "subfunctionality": [{"id":1, "title":"a1", "description":"sample},
{"id":2, "title":"a2", "description":"sample}, 
{"id":3, "title":"a3", "description":"sample}
_

require 'json'

a = JSON.parse(str.gsub("\"sample", "\"sample\"") << ']}')["subfunctionality"]
  #=> [{"id"=>1, "title"=>"a1", "description"=>"sample"},
  #    {"id"=>2, "title"=>"a2", "description"=>"sample"},
  #    {"id"=>3, "title"=>"a3", "description"=>"sample"}]
str=“a1”,“description”=>“sample”},
#{“id”=>2,“title”=>“a2”,“description”=>“sample”},
#{“id”=>3,“title”=>“a3”,“description”=>“sample”}]
步骤如下

s = str.gsub("\"sample", "\"sample\"") << ']}'
  #=> "{ \"functionality\":[], \"subfunctionality\": [{\"id\":1, \"title\":\"a1\", 
  #    \"description\":\"sample\"},\n{\"id\":2, \"title\":\"a2\",
  #    \"description\":\"sample\"}, \n{\"id\":3, \"title\":\"a3\",
  #    \"description\":\"sample\"}\n]}"
h = JSON.parse(s)
  #=> {"functionality"=>[],
  #    "subfunctionality"=>[{"id"=>1, "title"=>"a1", "description"=>"sample"},
  #                         {"id"=>2, "title"=>"a2", "description"=>"sample"},
  #                         {"id"=>3, "title"=>"a3", "description"=>"sample"}]}
h["subfunctionality"]
  #=> (return value shown above)
s=str.gsub(“\”sample“,“\”sample\”)“{\”功能\\”:[],“\”子功能\“:[{\”id\”:1,\”标题\“:\”a1\”,
#\'description\':\'sample\'}\n{\'id\':2,\'title\':\'a2\',
#\'description\':\'sample\'}\n{\'id\':3,\'title\':\'a3\',
#\“description\”:\“sample\”}\n]}”
h=JSON.parse
#=>{“功能”=>[],
#“子功能”=>[{“id”=>1,“title”=>“a1”,“description”=>“sample”},
#{“id”=>2,“title”=>“a2”,“description”=>“sample”},
#{“id”=>3,“title”=>“a3”,“description”=>“sample”}]}
h[“子功能”]
#=>(返回值如上所示)

请注意,我在不同的地方打破了字符串
s
,以使其更易于阅读。

如果它是有效的JSON,为什么不呢,
a=JSON.parse($responsebody)['subfunctionality']
。使用regex可能会让您在一些特殊情况下陷入困境,例如body包含“{}”等字符。”如何创建数组或存储对数组的rest api响应“–你可以通过编写一个程序来实现这一点。如果您的程序有问题,请仔细阅读您正在使用的所有方法、类、模块和库的文档,为您的程序编写测试,用笔和纸跟踪执行情况,在调试器中单步执行,然后对其进行休眠,从头开始,再次休眠,然后,也只有到那时,才能将你的问题缩小到一个简洁、集中、简单、简短、可复制的范围,并提出一个具体、集中、狭窄的问题。谢谢你的评论,但我相信这个问题是直截了当、具体、集中的,因为我没有得到正确的文档或答案,所以提出了一个狭义的问题,我确实认为这个问题可以通过所需的信息@Jörgwmittag重现。这个问题缺少了帮助您修复代码的最重要的东西:您的代码。
s = str.gsub("\"sample", "\"sample\"") << ']}'
  #=> "{ \"functionality\":[], \"subfunctionality\": [{\"id\":1, \"title\":\"a1\", 
  #    \"description\":\"sample\"},\n{\"id\":2, \"title\":\"a2\",
  #    \"description\":\"sample\"}, \n{\"id\":3, \"title\":\"a3\",
  #    \"description\":\"sample\"}\n]}"
h = JSON.parse(s)
  #=> {"functionality"=>[],
  #    "subfunctionality"=>[{"id"=>1, "title"=>"a1", "description"=>"sample"},
  #                         {"id"=>2, "title"=>"a2", "description"=>"sample"},
  #                         {"id"=>3, "title"=>"a3", "description"=>"sample"}]}
h["subfunctionality"]
  #=> (return value shown above)