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

时间:2019-03-14 11:06:20

标签: c# json serialization json.net

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

这是我的Posts类:

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 个答案:

答案 0 :(得分:0)

您的json不是单个对象。它是对象的数组,因此请尝试在while scanning for the next token found character '\t' that cannot start any token in "/user/config/settings", line 2, column 1

中反序列化
List<Post>

然后您可以使用List<Posts> posts = JsonConvert.DeserializeObject<List<Posts>>(responseValue);

遍历此posts
foreach

输出:

enter image description here