Как проверить указанное имя потомка, включенное в Parent на JArray с запросом Linq

У меня так же, как следующие данные Json

"widget": {
        "debug": "on",
        "window": {
            "title": "Sample Konfabulator Widget",
            "name": "main_window",
            "width": 500,
            "height": 500
        },
        "image": { 
            "src": "Images/Sun.png",
            "name": "sun1",
            "hOffset": 250,
            "vOffset": 250,
            "alignment": "center"
        },
        "text": {
            "data": "Click Here",
            "size": 36,
            "style": "bold",
            "name": "text1",
            "hOffset": 250,
            "vOffset": 100,
            "alignment": "center",
            "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
        }

И как я могу проверить виджет Родительский узел включает в себя изображение дочернего узла с linq? У меня есть условие if-else, если родительский виджет включает указанный дочерний узел.

если у Parent есть свойство children, я добавлю в свою базу данных данные свойства и выполню, если блок кода вернет true.

Мой проверенный запрос, дочерние элементы которого соответствуют родительскому узлу.

if(!((from x in widget[i].Children() where x.Contains("image") select x) is Nullable)) 
     something else..
else
    something else..

если у Parent нет заданных потомков, которым я даю параметр со значением потомков, запустите else состояние блока с возвратом false.

Мой проверенный запрос, дочерние элементы которого не соответствуют родительскому узлу.

  if(!((from x in widget[i].Children() where x.Contains("link") select x) is Nullable)) 
           something else..
        else
            something else..

Но я не делал, когда Parent не указал дочерний узел и не запустил блок else.. С наилучшими пожеланиями.

1 ответ

Вам не нужен запрос здесь - просто получите токены по ключу:

JObject obj = JObject.Parse(json);
bool imageExists = obj["widget"]["image"] != null;

Предположим, у вас есть следующий JSON:

{
   "widget": {
        "debug": "on",
        "window": {
            "title": "Sample Konfabulator Widget",
            "name": "main_window",
            "width": 500,
            "height": 500
        },
        "image": { 
            "src": "Images/Sun.png",
            "name": "sun1",
            "hOffset": 250,
            "vOffset": 250,
            "alignment": "center"
        },
        "text": {
            "data": "Click Here",
            "size": 36,
            "style": "bold",
            "name": "text1",
            "hOffset": 250,
            "vOffset": 100,
            "alignment": "center",
            "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
        }
    }
}
Другие вопросы по тегам