在适当的Ruby中使用JSON提要
我目前正在一个RubyonRails项目中使用一个api提要。作为Ruby的新手,我觉得我没有正确地使用和管理JSON。有一些功能不起作用,我相信它们是围绕着一旦我拥有了JSON对象,我将如何处理它。这就是我的工作在适当的Ruby中使用JSON提要,ruby,json,hash,Ruby,Json,Hash,我目前正在一个RubyonRails项目中使用一个api提要。作为Ruby的新手,我觉得我没有正确地使用和管理JSON。有一些功能不起作用,我相信它们是围绕着一旦我拥有了JSON对象,我将如何处理它。这就是我的工作 { "auth" : { "person" : { "id" : 1, "name" : "john", "pass" : "123" }, "person" : { "id" : 2,
{ "auth" : {
"person" : {
"id" : 1,
"name" : "john",
"pass" : "123"
},
"person" : {
"id" : 2,
"name" : "fred",
"pass" : "789"
}
}}
我发现我可以通过以下操作获得一个简单数组:
jsonArray = JSON.parse(persons)
# the following allows me to target the persons objects
personArray = jsonArray["auth"]["persons"]
这里的问题是试图执行类似于
personArray的操作。首先(5)
会给出int到string的转换错误。我想把它放到一个可行的散列中,我可以对它进行操作,但目前看来我只能作为散列进行迭代。我可能需要对该结果数据进行排序、从中提取人员以及执行其他操作。我应该如何正确地导入它?实际上,直接解析json字符串不会给您提供[“auth”][“persons”]
。json字符串中没有“persons”
字段……我希望这是打字错误
制作personArray所需的确切格式。首先(5)
应为:
{
"auth": {
"persons": [ # Note the square bracket here, which defines an array instead of a hash
{"id": 1, "name": "john", "pass": "123"},
{"id": 2, "name": "fred", "pass": "789"}
]
}
}
你现在可以做你想做的事。实际上直接解析json字符串不会给你提供
[“auth”][“persons”]
。json字符串中没有“persons”
字段……我希望这是打字错误
制作personArray所需的确切格式。首先(5)
应为:
{
"auth": {
"persons": [ # Note the square bracket here, which defines an array instead of a hash
{"id": 1, "name": "john", "pass": "123"},
{"id": 2, "name": "fred", "pass": "789"}
]
}
}
你现在可以做你想做的事。你上面的JSON会导致一个JS对象存储的数据比你想象的要少。您正在重复覆盖
person
键。尝试将其复制/粘贴到web浏览器的控制台:
var o={“auth”:{
“人”:{
“id”:1,
“姓名”:“约翰”,
“通过”:“123”
},
“人”:{
“id”:2,
“姓名”:“弗雷德”,
“通行证”:“789”
}
}};
JSON.stringify(o);
//{“auth”:{“person”:{“id”:2,“name”:“fred”,“pass”:“789”}
上面的JSON导致JS对象存储的数据比您想象的要少。您正在重复覆盖person
键。尝试将其复制/粘贴到web浏览器的控制台:
var o={“auth”:{
“人”:{
“id”:1,
“姓名”:“约翰”,
“通过”:“123”
},
“人”:{
“id”:2,
“姓名”:“弗雷德”,
“通行证”:“789”
}
}};
JSON.stringify(o);
//{“auth”:{“person”:{“id”:2,“name”:“fred”,“pass”:“789”}
是的,那是个打字错误,谢谢你的留言。我没有注意到支架/支架的问题。这是一个我无法设计的API,但可以与提供者一起使用。将这些人视为一个数组而不是不同的对象将更有意义。我将对此进行测试,如果有效,我将对此进行标记。谢谢是的,那是个打字错误,谢谢你的留言。我没有注意到支架/支架的问题。这是一个我无法设计的API,但可以与提供者一起使用。将这些人视为一个数组而不是不同的对象将更有意义。我将对此进行测试,如果有效,我将对此进行标记。谢谢请注意,上面Ruby代码中的jsonArray
不是一个;这是一个好主意。调用JavaScript对象
一个“关联数组”会导致这种草率的术语;这是一个好主意。调用JavaScript对象
一个“关联数组”会导致这种草率的术语。