简体   繁体   English

反序列化 Json, Xamarin Forms

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM