мой JSON, какНе можете десериализации текущий массив JSON в одном подкаталоге массиве
{
"code":"1",
"message":"The request succeeded",
"contacts":
{ "contactId":"58330efb45cedb9087e281e6",
"email":"",
"firstName":"",
"lastName":"",
"number":"4145075733"
}
}
и я пытаюсь использовать DeserializeObject
с этим Generic.List
public class AllContacts
{
public string code { get; set; }
public string message { get; set; }
public List<ContactList> contacts { get; set; }
}
public class ContactList
{
public string contactId { get; set; }
public string email { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
public string number { get; set; }
}
это работает отлично с двумя или более данными в контактном массиве, но он не работает в одиночных данных.
Ошибка:
Cannot deserialize the current JSON object (eg.{"name":"value"}) into type 'System.Collections.Generic.List'1[smsApplication.Controllers.ContactList]' because the type requires a JSON array to deserialize correctly. To fix this error either change the JSON to a JSON array or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or
List<T>
) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.
определите "не работает". Вы получаете сообщение об ошибке, или оно не дает ожидаемого результата? Приведите пример. – ADyson
«Не работает» дает ошибку Невозможно десериализовать текущий объект JSON (например, {«name»: «value»}) в тип «System.Collections.Generic.List'1 [smsApplication.Controllers.ContactList]», потому что для этого требуется тип массив JSON для десериализации правильно. Чтобы исправить эту ошибку, либо измените JSON на массив JSON, либо измените десериализованный тип, чтобы он был обычным типом .NET (например, не примитивным типом типа integer, а не типом коллекции, подобным массиву или List), который может быть десериализован из объекта JSON. JsonObjectAttribute также можно добавить к типу, чтобы заставить его десериализовать объект JSON. –
user2157094
Другой подход: вы можете использовать JObject и SelectToken для вывода данных. – Netferret