Как проверить указанное имя потомка, включенное в 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;"
}
}
}