Я уверен, что этот вопрос задавали снова и снова, но по какой-то причине мне все еще не удается заставить это работать.Deserialization объекта JSON с помощью DataContractJsonSerializer в C#
Я хочу десериализовать объект JSON, содержащий один элемент; строковый массив:
[{"idTercero":"cod_Tercero"}]
Это класс, который я пытаюсь десериализации в:
[DataContract]
public class rptaOk
{
[DataMember]
public string idTercero { get; set; }
public rptaOk() { }
public rptaOk(string idTercero)
{
this.idTercero = idTercero;
}
}
Это метод, который я пытаюсь десериализации:
public T Deserialise<T>(string json)
{
DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(T));
using (MemoryStream stream = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
T result = (T)deserializer.ReadObject(stream);
return result;
}
}
И так Я пытаюсь заполнить объект:
rptaOk deserializedRpta = deserializarOk(rpta);
Но по какой-то причине, это возвращает «»
MessageBox.Show(deserializedRpta.idTercero);
В вашем примере у json есть массив объектов, а не сам объект. Возможно, это твоя проблема? –
Возможно, это помогает и кому-то еще: https: //kashfarooq.wordpress.com/2011/01/31/create-net-objects-from-json-using-datacontractjsonserializer/ –
'public T Deserialise (строка json)' - рассмотрим добавление статического значения после public –
serup