используя просто. net для преобразования json, есть ли способ удалить поле сложного типа, у которого нет дочернего элемента со значением? - PullRequest
0 голосов
/ 17 января 2020

пример ввода json:

{
  "parent1": {
    "child2": "value"
  }
}

В настоящее время, если я не хочу показывать несуществующее поле, я буду использовать комбинацию функций "#ifgroup (#exists (". * 1004 "). *

Рассмотрим этот преобразователь:

{ 
  "t_parent1": {
    "#ifgroup(#exists($.parent1.child1))" : {
      "t_child1": "#valueof($.parent1.child1)"
    },
    "#ifgroup(#exists($.parent1.child2))" : {
      "t_child2": "#valueof($.parent1.child2)"
    }
  }
  "t_parent2": {
    "#ifgroup(#exists($.parent2.child1))" : {
      "t_child1": "#valueof($.parent2.child1)"
    },
    "#ifgroup(#exists($.parent2.child2))" : {
      "t_child2": "#valueof($.parent2.child2)"
    }
  }
}

это выдаст:

{ 
  "t_parent1": {
      "t_child2": "value"
  },
  "t_parent2": {
  }
}

сейчас, если я не хочу, чтобы t_parent2 был виден на текущем выходе, так как он не имеет child, возможно ли это просто. net удалить его, учитывая, что другие входные данные могут включать parent2 с дочерними узлами?

подобно

{
  "#ifgroup(#exists($.parent2.child1) **OR** #ifgroup(#exists($.parent2.child2))": {
    "parent2" {
      ...
    }
  }
}
...