Десериализация многомерного json

259
12 июля 2017, 22:34

Есть json, для которого я сгенерировал класс.

[{"geo":"EG","impressions":0,"clicks":1944,"revenue":1.3219},{"geo":"NZ","impressions":0,"clicks":28,"revenue":0.0337},
..

.

public class Reporo
{
    public Class1[] Property1 { get; set; }
}
public class Class1
{
    public string geo { get; set; }
    public int impressions { get; set; }
    public int clicks { get; set; }
    public float revenue { get; set; }
}

Я пытаюсь десериализовать исходную json-строку в класс, однако в переменной reporoData есть n-элементов, но в них ничего не содержится.

var reporoData = new JavaScriptSerializer().Deserialize<List<Reporo>>(json);

Если я же сделаю десериализацию вList<object>, то данные появляются, однако навигация в них вызывает проблему.

Answer 1

С той структурой JSON данных, который вы привели вам необходимо десериализовать в коллекцию типа Class1.

var reporoData = new JavaScriptSerializer().Deserialize<List<Class1>>(s);

Если вы хотите десериализовать в коллекцию типа Reporo ваши JSON данные должны выглядеть так:

"[{\"Property1\":[{\"geo\":\"EG\",\"impressions\":0,\"clicks\":1944,\"revenue\":1.3219}]}]";

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

READ ALSO
Оптимизация кода по поиску файлов c#

Оптимизация кода по поиску файлов c#

Добрый день, у меня стоит такая задача : найти все png файлы в диске и переименовать их, как я сделал :

323
Отображение числа 9223372036854775807

Отображение числа 9223372036854775807

Почему разные языки по-разному отображают число 9223372036854775807, хотя все используют один и тот же формат 8-байтного double для представления чисел?

417
Почему-то не появляется модальное окно

Почему-то не появляется модальное окно

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

335