【发布时间】:2019-08-07 17:08:03
【问题描述】:
我得到这个 json 作为对我的 api 调用的响应。我需要得到评论以在我的测试中验证它。我只会在回复中得到一条记录。如何访问评论值“意大利食谱”? 我做了 JSON.parse(response) 并得到了 ruby 哈希。我需要帮助从哈希中提取值。
{
“recipe”:{
"id":10,
"created_at":"2019-03-16T22:21:03Z",
"updated_at":"2019-03-16T23:07:07Z",
},
"audit":{
"id":402216837440,
"recipe_id":10,
"created_at":"2019-03-16T23:07:07Z",
"events":[
{
"id":402216837460,
"author_id":179,
"Comment":"Italian Recipes.",
"audit_id":402216837440
}
],
"via":{
"channel":"api"
}
}
}
我试过了,但我认为这不是正确的格式。我收到错误。需要有关正确语法的帮助。
parsed_response = JSON.parse(res)
parsed_response['audit']['events']['comment']
【问题讨论】:
-
提示:将其提供给
JSON.parse会给你一个 ruby 哈希值。 -
“但我认为这不是正确的格式”——当然。
events是一个数组。在这种情况下,它只包含一个元素,但如果它包含多个元素,您希望获得哪条评论? -
如果
"json"是您的字符串,您知道直接键是"Comment",并且该键不会出现在其他任何地方(即使您不知道哈希的其余结构)你可以写json[/(?<=\"Comment":")[\p{Alnum}, ]+/] #=> "Italian Recipes"。但是,如果您确实知道散列的结构,则确实应该将字符串转换为散列并挖掘所需的值。请注意,双引号和单引号在正则表达式中没有特殊含义。 -
您选择的答案没有问题,但以后请考虑等待更长时间再做出选择。快速选择可能会阻止其他答案,有些人认为它们对那些仍在研究答案的人是不礼貌的。关键是不要着急。大多数提问者至少要等几个小时,有些比这更长。
-
@Sergio,我以前犯过这个错误。之前可能是你纠正了我。让我们看看我以后是否还记得。
标签: ruby-on-rails json ruby parsing