Как преобразовать JSON в List & lt; Class & gt; (Newtonsoft) [дубликат]

Используйте метод .on() jQuery http://api.jquery.com/on/ для присоединения обработчиков событий к элементу live.

Также с версии 1.9 .live() удаляется.

27
задан CDspace 5 April 2017 в 20:34
поделиться

5 ответов

Чтобы было ясно, в дополнение к ответу @SLaks, это означало, что вам нужно изменить эту строку:

List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);

на что-то вроде этого:

RootObject datalist = JsonConvert.DeserializeObject<RootObject>(jsonstring);
28
ответ дан har07 19 August 2018 в 02:12
поделиться

Это случилось со мной, потому что я пытался получить IEnumerable, но ответ имел одно значение. Пожалуйста, постарайтесь убедиться, что это список данных в вашем ответе. Линии, которые я использовал (для api url get) для решения проблемы, подобны этим:

HttpResponseMessage response = await client.GetAsync("api/yourUrl");

if (response.IsSuccessStatusCode)
{
    IEnumerable<RootObject> rootObjects =
        awaitresponse.Content.ReadAsAsync<IEnumerable<RootObject>>();

    foreach (var rootObject in rootObjects)
    {
        Console.WriteLine(
            "{0}\t${1}\t{2}",
            rootObject.Data1, rootObject.Data2, rootObject.Data3);
    }

    Console.ReadLine();
}

Надеюсь, что это помогает.

2
ответ дан Massimiliano Kraus 19 August 2018 в 02:12
поделиться

Реальная проблема заключается в том, что вы используете динамический тип возврата в методе GetClickClickClient. И хотя вы используете метод для сериализации, конвертер JSON не может десериализовать этот объект после этого.

Использовать insted из:

dynamic result = client.Get("fql", new { q = "select target_id,target_type from connection where source_id = me()"}); 
string jsonstring = JsonConvert.SerializeObject(result);

что-то вроде этого:

string result = client.Get("fql", new { q = "select target_id,target_type from connection where source_id = me()"}).ToString();

Затем вы можете использовать метод DeserializeObject:

var datalist = JsonConvert.DeserializeObject<List<RootObject>>(result);

Надеюсь, это поможет.

0
ответ дан Rawson 19 August 2018 в 02:12
поделиться

Поскольку сообщение об ошибке очень сложно сказать вам, вы не можете десериализовать один объект в коллекции (List<>).

Вы хотите десериализовать в один RootObject.

10
ответ дан SLaks 19 August 2018 в 02:12
поделиться
  • 1
    Не давайте ему, чтобы «очень старался рассказать вам» и «бессмысленно». ТАК. это переводчик сообщений об ошибках. – JohnB 29 June 2018 в 18:55
  • 2
    Что сбивает с толку, почему он просто не помещает ничего или одно значение в пустой массив и просто «делает это» ?. Если я это сделаю с помощью старого DataContractJsonSerializer(typeof(string[])).ReadObject()..., он просто работает, даже если для десериализации в string[] для строки будет {{} ' – PandaWood 15 August 2018 в 06:59
-2
ответ дан Forexamazing 30 October 2018 в 13:49
поделиться
Другие вопросы по тегам:

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