#c# #json #json.net
#c# #json #json.net
Вопрос:
Итак, у меня есть объект JSON, затем я перебираю все дочерние элементы и добавляю элементы в список JTokens. При отладке список содержит следующее:https://imgur.com/a/7Pap9Xz
Когда я показываю окно сообщения, я получаю следующее:https://imgur.com/a/9KHYCP3
Проблема в том, что мне просто нужен текст строки как: ‘Доброволец’. Как я могу это сделать?
List<JToken> objecten = new List<JToken>();
JObject json = JObject.Parse(content);
foreach (JToken token in json.Children<JToken>())
{
objecten.Add(token);
}
MessageBox.Show(objecten[1].ToString());
Если я хочу получить роль в строковой переменной, я хотел бы сделать это следующим образом, но я не знаю, как это работает:
роль строки = objecten.Роль;
Ответ №1:
Вы можете использовать SelectToken
, в котором вы можете выбрать желаемую базу значений на их пути. Смотрите эту ссылку.
JObject json = JObject.Parse(content);
var value = json.SelectToken("role").Value<string>();
Добавьте путь для выбора role
. Путь будет зависеть от вашей структуры JSON.
Пример значения содержимого
{
response : {
role : volunteer,
success: true,
token: eyJhbGci...
}
}
JObject json = JObject.Parse(content);
var value = json.SelectToken("response.role").Value<string>();
Ответ №2:
Вы можете попробовать с этим:
JObject json = JObject.Parse(content);
foreach (KeyValuePair<string, JToken> sourcePair in json)
{
if (sourcePair.Key == "Role")
role = sourcePair.Value.ToString();
}
С помощью рекурсии вы можете пройти через весь объект json, не зная полного пути к атрибутам