Xamarin形式反序列化json

问题描述

我的应用程序从rest api消费数据并获取json

我的应用中的代码

var content = await httpClient.GetStringAsync("http://192.168.0.101:8000/api/list");

JSON

"count": 10,"next": "http://127.0.0.1:8000/api/list?page=2","prevIoUs": null,"results": [
    {
        "name": "lorem ipsum1","image": "http://127.0.0.1:8000/media/pictures/2.jpg","description": "lorem ipsum5"
    },{
        "name": "lorem2","image": "http://127.0.0.1:8000/media/pictures/1.jpg","description": "lorem ipsum4"
    }

我想使用一个类反序列化“计数”

public class Count
{
    public int count { get; set; }
}

我的问题是:我只能反序列化“ count”:10吗?预先感谢

解决方法

绝对。您只需要使用单个属性Count来构建模型类,然后使用Newtonsoft.Json反序列化即可。

public class Dto
{
    public int Count { get; set; }
}

我为您制作了一个.NET小提琴:


请注意,我必须修复您的示例JSON:

  • 整个json缺少一个右括号“ {”和“}”
  • 结果数组没有右括号“]”
  • 仅需要带有.Replace("'","\"");的东西,因为我必须在C#字符串中使用'而不是"。您不需要那个。
,

如果只需要一个值,则可以将数据解析为JObject

var data = JObject.Parse(json); 
        
Console.WriteLine(data["count"]);