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

我收到错误:无法将当前 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; }

        

    }

}

最终版本将通过所有不同的供应商循环。



烙印99
浏览 115回答 1
1回答

喵喔喔

你的 json 不是一个单一的对象。它是一个对象数组,所以尝试反序列化List<Post>List<Posts> posts = JsonConvert.DeserializeObject<List<Posts>>(responseValue);posts然后你可以通过使用来迭代它foreachforeach (var item in posts){&nbsp; &nbsp; Console.WriteLine("providerName: " + item.ProviderName);&nbsp; &nbsp; Console.WriteLine("providerIcon: " + item.providerIcon);&nbsp; &nbsp; Console.WriteLine();}输出:
打开App,查看更多内容
随时随地看视频慕课网APP