为了账号安全,请及时绑定邮箱和手机立即绑定

无法将 JSON 字符串反序列化为类

无法将 JSON 字符串反序列化为类

C#
烙印99 2022-10-23 16:42:06
我收到错误:无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型 'jsonTest.Posts',因为该类型需要 JSON 对象(例如 {"name":"value"})才能正确反序列化。我现在一定是错过了什么……?这是我的小型控制台应用程序(此时我对 Json 字符串进行了硬编码):using System;using Newtonsoft.Json;        namespace jsonTest    {        class Program        {            static void Main(string[] args)            {                                var responseValue = @"[{""providerName"":""Aktoo"",""providerIcon"":""logo1.png""},{""providerName"":""Aktii"",""providerIcon"":""logo2.png""}]";                                Posts posts = JsonConvert.DeserializeObject<Posts>(responseValue);                    Console.WriteLine("test" + posts.ProviderName);                                            }        }    }这是我的帖子类:using System;using System.Collections.Generic;using System.Text;using Newtonsoft.Json;namespace jsonTest{    class Posts    {        [JsonProperty("providerName")]        public string ProviderName { get; set; }        [JsonProperty("providerIcon")]        public string providerIcon { get; set; }            }}最终版本将通过所有不同的供应商循环。
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

你的 json 不是一个单一的对象。它是一个对象数组,所以尝试反序列化List<Post>


List<Posts> posts = JsonConvert.DeserializeObject<List<Posts>>(responseValue);

posts然后你可以通过使用来迭代它foreach


foreach (var item in posts)

{

    Console.WriteLine("providerName: " + item.ProviderName);

    Console.WriteLine("providerIcon: " + item.providerIcon);

    Console.WriteLine();

}

输出:

//img1.sycdn.imooc.com//6354fe840001fe1a01930092.jpg

查看完整回答
反对 回复 2022-10-23
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信