xamarin 在C#中将对象反序列化为自己的类型

m1m5dgzv  于 2022-12-16  发布在  C#
关注(0)|答案(2)|浏览(144)

我是c#新手,我想把一个对象转换成一个代表用户的类。我正在从一个http请求中检索对象到一个API。我的代码是:

private async void getUser()
        {
            var requestURI = new HttpRequestMessage();
            string url = "https:...";
            requestURI.RequestUri = new Uri(url);
            requestURI.Method = HttpMethod.Get;
            requestURI.Headers.Add("Accept", "application/json");
            HttpResponseMessage responseURI = await client.SendAsync(requestURI);
            if (responseURI.StatusCode == HttpStatusCode.OK)
            {
                Debug.WriteLine("Get User OK");
                var UserString = await responseURI.Content.ReadAsStringAsync();
                Debug.WriteLine("User: " + UserString);
                var UsersJson = JsonConvert.DeserializeObject(UsersString);
                Debug.WriteLine(UserJson);
            }
            else
            {
                Debug.WriteLine("User GET request failed");
            }
        }

输出为:

{
  "Username": "Alice",
  "IP": "192.13.2.2",
  "Levels": "1,2"
}

我如何创建一个类或一个类型,以便以后将这个对象反实现到其中?当类型/类被创建时,我如何将对象反实现到其中?
谢谢你的建议

nnvyjq4y

nnvyjq4y1#

您可以使用这个网站-https://json2csharp.com/-来生成C#类。
在这种情况下,类将如下所示:

public class User
{
    public string Username { get; set; }
    public string IP { get; set; }
    public string Levels { get; set; }
}

若要反序列化为此类,可以使用如下命令:

var user = JsonConvert.DeserializeObject<User>(UsersString);
ev7lccsx

ev7lccsx2#

public class User
{
    public string Username { get; set; }
    public string IP { get; set; }
    public string Levels { get; set; }
}

您可以反序列化对象,如下所示:请看一下这个https://www.newtonsoft.com/json/help/html/SerializingJSON.htm

var user = JsonConvert.DeserializeObject<User>(json);

相关问题