我有JSON结构,它是一种嵌套的父/子结构:
{
"type": "site",
"profile_id": "site profile id",
"children": [
{
"type": "dealer",
"profile_id": "dealer profile id",
"children": [
{
"type": "location",
"profile_id": "location profile id",
"children": [
{
"type": "customer",
"profile_id": "customer profile id",
"children": [
{
"type": "farm",
"farm_id": "farm id",
"children": [
{
"type": "field",
"field_id": "field id"
}]}]}]}]}]}
JSONPath中是否有某种方法可以执行以下操作之一:
如果它存在,请给我profile_id,或者给我farm_id if 它存在,或者如果它存在,则给我field_id。
如果type = customer,请给我profile_id,如果type = farm,则给我farm_id,如果type = field
,则给我field_id给我每个班级的第n个属性。 id实际上是每个类中的第三个属性。这是我最不喜欢的选项,因为我不知道id是否永远是第三个属性。
答案 0 :(得分:3)
选项2的解决方案需要3个单独的查询,如下所示。以下是3个查询:
$..[?(@.type=='customer')].profile_id
$..[?(@.type=='farm')].farm_id
$..[?(@.type=='field')].field_id
我使用http://www.jsonquerytool.com
验证了这些查询另请参阅this question以获取类似示例。