这个问题在这里已有答案:
我收到错误:无法将当前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; }
}
}
最终版本将遍历所有不同的提供商。
你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();
}
输出: