LaysAndNetflix Ответов: 2

Как получить значение от JSON.NET


Когда-то я извлекал определенное значение из форматированного текста JSON, но теперь мой подход, казалось, не работал. Мое строковое значение sp получает нулевое значение. Я пытался найти тот же вопрос с ответом здесь, на codeproject, но ни один из них не работает.

Я пытался получить "удостоверение личности" от

{"data": [
    {
      "id": 109993,
      "member_id": 378832,
      "issuer_sign": 9,
      "ta_id": 96122,
      "endorsement": null,
      "title": "Member"
      
}
]
}


Что я уже пробовал:

dynamic obj = JsonConvert.DeserializeObject(str);
     string sp = Convert.ToString(obj.id);

2 Ответов

Рейтинг:
17

Krunal Rohit

Вам нужно создать пользовательский объект, который включает в себя ту же подпись, что и ваш JSON. Что-то вроде-

public class MyData
{
    public int id { get; set; }
    public int member_id { get; set; }
    public int issuer_sign { get; set; }
    public int ta_id { get; set; }
    public string endorsement { get; set; }
    public string title { get; set; }
}

var data = JsonConvert.DeserializeObject<MyData>(jsonString);

А затем выполнить десериализацию JSON с этого объекта. Пожалуйста, прочтите это для получения дополнительной информации-
Десериализация JSON с помощью C# - переполнение стека[^]
Как сериализовать и десериализовать данные JSON | Microsoft Docs[^]

КР.


Maciej Los

5ed!

Рейтинг:
11

F-ES Sitecore

Ваш json-это свойство, называемое "data", которое представляет собой массив объектов, и в вашем случае в массиве есть только один элемент. Если бы вы хотели получить идентификатор первого элемента в массиве данных вы бы сделали это

string sp = Convert.ToString(obj.data[0].id);


Однако если вы ожидаете, что в данных будет больше элементов, то вам нужно будет выполнить цикл, чтобы найти тот, который вы хотите, или обработать их все, в зависимости от того, что соответствует вашим требованиям.