уточняющий мой вопрос, я хотел бы использовать JToken.SelectTokens Method (String)
от Namespace: Newtonsoft.Json.Linq
. Как я могу использовать метод SelectTokens("")
для получения количества детей для каждого узла "174637"
(unit_id) и "174638"
(unit_id)?. Для первого узла я должен получить 1
и для второго 2
. Я пробовал так:C# json count node's дети
foreach (var test in unit_ids) { //takes every unit_id, one by one
var children_of_unit_id = test.SelectTokens("*.[*]").count();
}
Но это не дает мне ничего.
"174637": {
"1": {
"value_symbol": "3",
"exam_session_number": 1,
"exam_id": 207983,
"value_description": {
"en": "satisfactory",
}
}
}
"174638": {
"1": {
"value_symbol": "3",
"exam_session_number": 1,
"exam_id": 207984,
"value_description": {
"en": "satisfactory",
}
}
"2": {
"value_symbol": "3",
"exam_session_number": 2,
"exam_id": 207985,
"value_description": {
"en": "satisfactory",
}
}
}
EDITED
Это оригинальный Json
:
{
"grades": {
"course_units_grades": {
"173565": {
"1": {
"value_symbol": "3,5",
"exam_session_number": 1,
"exam_id": 208798,
"value_description": {
"en": "satisfactory plus",
"pl": "dst+"
}
}
},
"173566": {
"1": {
"value_symbol": "2",
"exam_session_number": 1,
"exam_id": 208797,
"value_description": {
"en": "unsatisfactory",
}
},
"2": {
"value_symbol": "3",
"exam_session_number": 2,
"exam_id": 208797,
"value_description": {
"en": "satisfactory",
}
}
}
},
"course_grades": {}
}
}
Так это выглядит следующим образом:
foreach (var t in json_grade)//take every "grades" element, one by one
{
var test = t.SelectTokens("['grades'].['course_units_grades']");
foreach (var unit_ids in test)
{
foreach (var test in unit_ids) { //takes every unit_id, one by one
var children_of_unit_id = test.SelectTokens("*.[*]").count();
}
}
}
'json' не является действительным. –
Я думаю, у вас нет выбора, кроме как сканировать дерево json. Я уверен, что есть много примеров JFS.NET BFS/DFS. –
Я отредактировал свое сообщение, чтобы показать исходную структуру json и как выглядит 'foreach'. –