[英]Deserialize Json, Xamarin Forms
Xamarin Forms. Xamarin Forms。 Got a Json string, but how can I convert it in a c # object, without using third-party libraries.
得到了 Json 字符串,但我如何在不使用第三方库的情况下将其转换为 c # object。 So require the framework of the championship in which I participate.
所以需要我参加的锦标赛的框架。
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
This JSON is an array of ClassPerson
, not a single ClassPerson
:)这个 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[];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.