Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在适当的Ruby中使用JSON提要_Ruby_Json_Hash - Fatal编程技术网

在适当的Ruby中使用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,

我目前正在一个RubyonRails项目中使用一个api提要。作为Ruby的新手,我觉得我没有正确地使用和管理JSON。有一些功能不起作用,我相信它们是围绕着一旦我拥有了JSON对象,我将如何处理它。这就是我的工作

{ "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
对象
一个“关联数组”会导致这种草率的术语。