1
我有一个JSON列表,如:对JSON值进行排序?
response = '{"ContainsErrors":false,"Result":[{"Name":"Aegypten","IsoCode":"EG"},{"Name":"Aequatorialguinea","IsoCode":"GQ"},{"Name":"Aethiopien","IsoCode":"ET"},{"Name":"Afghanistan","IsoCode":"AF"},{"Name":"Albanien","IsoCode":"AL"},{"Name":"Algerien","IsoCode":"DZ"},{"Name":"Angola","IsoCode":"AO"},{"Name":"Antigua und Barbuda","IsoCode":"AG"},{"Name":"Argentinien","IsoCode":"AR"},{"Name":"Australien","IsoCode":"AU"},{"Name":"Bahamas","IsoCode":"BS"}]}'
我怎样才能得到它的名字后排序?
response.sort_by { |k, v| v["Name"] }
不起作用。
什么工作是:
response = RestClient.get("#{Settings.itineris.url}/de/RepInfo/#{action}")
#response = '{"ContainsErrors":false,"Result":[{"Name":"Aegypten","IsoCode":"EG"},{"Name":"Aequatorialguinea","IsoCode":"GQ"},{"Name":"Aethiopien","IsoCode":"ET"},{"Name":"Afghanistan","IsoCode":"AF"},{"Name":"Albanien","IsoCode":"AL"},{"Name":"Algerien","IsoCode":"DZ"},{"Name":"Angola","IsoCode":"AO"},{"Name":"Antigua und Barbuda","IsoCode":"AG"},{"Name":"Argentinien","IsoCode":"AR"},{"Name":"Australien","IsoCode":"AU"},{"Name":"Bahamas","IsoCode":"BS"}]}'
JSON.load(response)['Result']
结果是未排序的列表。我怎样才能得到一个国家名称的有序列表?
嗯,它不工作,所以我试着用JSON.load(response)['Result']。sort_by {| k,v | v [“Name”]}但它也失败了。 – StandardNerd
您是否注意到我在我的示例中连接了您的输入以适应页面宽度? – mudasobwa
@Michael我使用Ruby 1.9.3,错误是“NoMethodError”和'block in rest_request','each','sort_by'... – StandardNerd