Всем доброй ночи,поможете разобраться с JSON в C#?

string json = @"{
""Name"": ""Apple"",
""Expiry"": new Date(1230422400000),
""Price"": 3.99
"; есть такой json (в интернете скопировал где - то) как мне из него вытащить например Name и Price?Полдня долблюсь и результата ноль! P.S с помощью библиотеки Newtonsoft.Json
Спасибо )
  • Вопрос задан
  • 254 просмотра
Решения вопроса 1
@mpavlov
Во-первых, как заметили выше, проверь JSON на валидность. Если все ок, выбирай любой из вариантов ниже.

Напиши класс с полями Name, Expiry, Price, а потом ньютонсофтом скасти. Выглядеть это будет примерно так:
public class MyClass
{
    public string Name {get;set;}
    public string Expiry {get;set;}
    public string Price {get;set;}
}

public class Parser
{
    public void Process(string json)
    {
        var result = JObject.Parse(json).ToObject<MyClass>();

        var name = result.Name;
        var expiry = result.Expiry;
        var price = result.Price;
    }
}


Есть менее красивый, но рабочий вариант без создания класса:
public class Parser
{
    public void Process(string json)
    {
        var result = JObject.Parse(json);

        var name = result["Name"];
        var expiry = result["Expiry"];
        var price = result["Price"];
    }
}

В последнем случае надо будет приводить типы значений к требуемым.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
Как правильно отметил GavriKos, у Вас json не валидный
{
"Name": "Apple",
"Expiry": 1230422400000,
"Price": 3.99
}

Вот валидный, например.
json["name"] - выведет, то что нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы