【问题标题】:Deserialize Json, Xamarin Forms反序列化 Json、Xamarin 表单
【发布时间】:2019-10-10 04:35:20
【问题描述】:

Xamarin 表单。得到了一个 Json 字符串,但是如何在不使用第三方库的情况下将其转换为 c# 对象。所以需要我参加的锦标赛的框架。

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

【问题讨论】:

  • 能否请您以英语发布此内容,以便广大用户能够理解并正确回答您。
  • 如果您想避免使用最流行的Json.NET,请查看:System.Runtime.Serialization.Json.DataContractJsonSerializerdocs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/…
  • 这对我不起作用:(
  • This does not work for me 什么不起作用?
  • 在您的问题中包含您的代码、对象模型和示例 json 数据。

标签: c# json xamarin


【解决方案1】:

此 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[];
}

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 2019-01-02
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 2016-05-30
    相关资源
    最近更新 更多