Десериализовать Json, Xamarin Forms - PullRequest
1 голос
/ 10 октября 2019

Xamarin Forms. Есть строка Json, но как я могу преобразовать ее в объект ac #, не используя сторонние библиотеки. Поэтому требуются рамки чемпионата, в котором я участвую.

public MainPage()
{

InitializeComponent();
string url = "https://my-json-server.typicode.com/Joyuse/JsonTest/users";
using (var web = new WebClient())
{
var response = web.DownloadString(url);
var result = ReadToObject(response);
MyList.ItemsSource = result.last_name;
}
}
public static ClassPerson ReadToObject(string json)
{
var deserializedUser = new ClassPerson();
var ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
var ser = new DataContractJsonSerializer(deserializedUser.GetType());
deserializedUser = ser.ReadObject(ms) as ClassPerson;
ms.Close();
return deserializedUser;
}
[DataContract]
public class ClassPerson
{
[DataMember]
public int id { get; set; }
[DataMember]
public string first_name { get; set; }
[DataMember]
public string second_name { get; set; }
[DataMember]
public string last_name { get; set; }
[DataMember]
public string city { get; set; }
[DataMember]
public int age { get; set; }
[DataMember]
public string url { get; set; }
}
https://my-json-server.typicode.com/Joyuse/JsonTest/users

1 Ответ

1 голос
/ 10 октября 2019

Этот JSON представляет собой массив из ClassPerson, а не один ClassPerson:)

ClassPerson[] persons;

using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
    var serializer = new DataContractJsonSerializer(typeof(ClassPerson[]));
    persons = serializer.ReadObject(stream) as ClassPerson[];
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...