Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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 有没有像Xpath这样的工具可以用来定位对象中的某些内容?_Ruby_Xpath_Tree Traversal - Fatal编程技术网

Ruby 有没有像Xpath这样的工具可以用来定位对象中的某些内容?

Ruby 有没有像Xpath这样的工具可以用来定位对象中的某些内容?,ruby,xpath,tree-traversal,Ruby,Xpath,Tree Traversal,我使用Xpath获取XML的一些元素 是否有类似的对象/哈希工具 我需要使用某种选择器获取JSON对象的值,这需要足够灵活,因为JSON的结构并不总是相同的 例如,xpath应该是//data/children/*/title 物体有类似的东西吗?我不想将我的对象转换为XML,这会带来其他问题 谢谢 Ruby 2.7引入了模式匹配,这可能会解决您的问题。例如: 数据={ 数据:{ 儿童:[ { 标题:“找到我” }, { 标题:“我错了” } ] } } 案例数据 在{data:{childre

我使用Xpath获取XML的一些元素

是否有类似的对象/哈希工具

我需要使用某种选择器获取JSON对象的值,这需要足够灵活,因为JSON的结构并不总是相同的

例如,xpath应该是
//data/children/*/title

物体有类似的东西吗?我不想将我的对象转换为XML,这会带来其他问题


谢谢

Ruby 2.7引入了模式匹配,这可能会解决您的问题。例如:

数据={
数据:{
儿童:[
{
标题:“找到我”
},
{
标题:“我错了”
}
]
}
}
案例数据
在{data:{children:[{title:'Find me'},*rest]}中
放入“已找到”
其他的
放入“未找到”
结束
在本例中,如果
{title:'Find me'}
位于
子项中,Ruby将检查数据结构并打印“ok”。

的可能重复项。有多种工具,但都没有xpath或css选择器。如果这是在后端(例如ruby可以访问
JSON
),那么您可以将其转换为
Hash
,并将
hashie
添加为依赖项。此gem为Hash对象提供深度遍历方法,包括
deep\u fetch
deep\u find
deep\u locate