【发布时间】:2016-01-11 23:04:58
【问题描述】:
我正在尝试将数据发布到 API,API 正在请求这样的 JSON 请求:
{
"blacklists": {
"list1": [{
"id": "123",
"find": "foo",
"type": "text"
}],
"list2": [{
"id": "321",
"find": "bar",
"type": "text"
}]
}
}
我的问题是构建一个带有代表上述内容的散列和数组的 JSON。
这是我目前的代码:
@blacklist = {}
@bl = {}
key_category = KeywordCategory.where("global_list = ? OR unit_id = ?",1,1)
key_category.each do |kc|
bl_name = kc.name # <- "list1, list2 etc."
kc.keywords.each do |kw|
@keywords = {}
@keywords['id'] = kw.id
@keywords['find'] = kw.data
@keywords['type'] = kw.is_regexp ? "regexp" : "text"
@bl.merge!(@keywords)
end
end
@blacklist['blacklist'] = @bl
return @blacklist.to_json
这段代码给了我这个 JSON(这有点来自 API 想要的):
{
"blacklists":
{"id":123,
"find":"foo",
"type":"text"
}
}
如何更改我的代码,使其根据顶级 JSON 输出?
【问题讨论】:
-
不明白你有什么和你需要什么,请澄清
-
我需要得到一个 JSON 字符串,与我提供的完全一样。试图实现我已经编写了下面的代码,但问题是它没有像上面那样创建字符串,而且键也会重复。
-
描述您在代码中所做的事情、关联等。更详细。不在 cmets 中,只需编辑问题
-
好的,我已经编辑了问题
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2