将接口返回的json字符串数据反序列化成对象

本文详细讲解如何将从API接口获取的JSON格式数据转换为编程语言中的对象,包括使用各种库和方法,如JavaScript的JSON.parse,Python的json模块,以及Java的Gson或Jackson库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 public static List<result> PostData(SectionDto detail)
        {

            var uri = "http://xx.xx.xxx.xxx:xxxx/api/Truck?pageSize=100&pageIndex=1&sectionId=1&equipmentId=";
            using (var httpClient = new HttpClient())
            {
                try
                {
                    HttpResponseMessage response = httpClient.GetAsync(uri).Result;
                    var result = response.Content.ReadAsStringAsync().Result;
                  //  result = "{\"succeed\":true,\"msgTime\":\"2019-03-26 11:00:57\",\"responseCode\":2000,\"msg\":\"查询成功\",\"data\":[{\"key\":\"29\",\"value\":\"粤A061W6\",\"selected\":false},{\"key\":\"25\",\"value\":\"粤a88888\",\"selected\":false},{\"key\":\"1\",\"value\":\"粤A88888\",\"selected\":false}]}";
                 
                    Trucks truck = DeserializeJSONTo<Trucks>(result);
                    if(truck.succeed)
                        return truck.data.result;
                    else
                        Console.WriteLine("请求失败");
                    return null;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return null;
                }
            }
        }
        /// <summary>
        /// 扩展方法:根据JSON字符串反序列化成对象
        /// </summary>
        /// <param name="pObj">序列化字符串</param>
        /// <returns>解析后的对象</returns>
        public static T DeserializeJSONTo<T>(string pObj)
        {
            if (string.IsNullOrEmpty(pObj))
            {
                return default(T);
            }
            return (T)JsonConvert.DeserializeObject(pObj, typeof(T));
        }

 public class Trucks
    {
        
        public bool succeed { get; set; }
        public truckMessage data { get; set; }
    }
    public class truckMessage
    {
        public int total { get; set; }
        public List<result> result { get; set; }
    }
    public class result
    {
        public string equipmentId { get; set; }
        public int truckId { get; set; }
        public string licenseNumber { get; set; }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值