DGKumar Ответов: 1

Как получить конкретное значение из строки json


Я попытался получить конкретное значение из данных json, но получил null или исключение

Ниже приведены мои данные json

{
  "Name": "Kumar",
  "policyName": "Lic",
  "targetResource": "3Months",
  "attributes": {
    "MajorIssue": {
      "attributeId": 1,
      "attributeKey": "check",
      "attributeValue": "7776000000"
    }
  },
  "enabled": true
}


нужно получить это значение из приведенных выше данных json
"attributeValue": "7776000000"


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

Ниже приведен мой код, который я попытался получить конкретное значение

dynamic Result = JsonConvert.DeserializeObject(jsonResultFromAPI);


foreach (var item in Result )
{

    retentionPeriod = item.attributes.attributeValue;//API Value;

}

1 Ответов

Рейтинг:
2

Majdi Saibi

Я предлагаю создать модели для представления ваших данных JSON:

public class MajorIssue
{
    public int attributeId { get; set; }
    public string attributeKey { get; set; }
    public string attributeValue { get; set; }
}

public class Attributes
{
    public MajorIssue MajorIssue { get; set; }
}

public class RootObject
{
    public string Name { get; set; }
    public string policyName { get; set; }
    public string targetResource { get; set; }
    public Attributes attributes { get; set; }
    public bool enabled { get; set; }
}

таким образом, вы можете легко десериализовать объекты:
dynamic Result = JsonConvert.DeserializeObject<RootObject>(jsonResultFromAPI);

var value = Result.Attributes.MajorIssue.attributeValue;


DGKumar

Привет Майди,

Тест класс мы можем узнать, что конкретное значение из ответа API который в формате JSON

Majdi Saibi

Да, ты можешь. Без циклического перебора объекта результата.

var value = Result.attributes.attributeValue;

DGKumar

У меня есть свойство в json с символом типа "ren - es-value"
из - за этого я не могу получить исключение получения значения.
Result.attributes-List.attributeValue;
Я заменил это значение без символа.
Теперь он работает спасибо

Majdi Saibi

Потрясающе! Если мой ответ помог вам, пожалуйста, отметьте его как ответ.