我从这里跟着教程
但是当我想用自己的 json 实现它时,我收到一条错误消息
无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.Generic.List`1[BelajarJson.RootObject]”,因为该类型需要 JSON 数组(例如 [1,2, 3])正确反序列化。要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或更改反序列化类型,使其成为普通的 .NET 类型(例如,不是像整数这样的原始类型,而不是像这样的集合类型可以从 JSON 对象反序列化的数组或列表。JsonObjectAttribute 也可以添加到类型中以强制它从 JSON 对象反序列化。路径“err_code”,第 2 行,位置 13。
内容.cs
namespace BelajarJson
{
public class Content
{
public int id { get; set; }
public string type { get; set; }
public string label { get; set; }
public string icon { get; set; }
public string url { get; set; }
public int timestamp { get; set; }
public string key { get; set; }
}
}
分页.cs
namespace BelajarJson
{
public class Paging
{
public int current_page { get; set; }
public int total_page { get; set; }
public int total_all { get; set; }
public int limit_per_page { get; set; }
}
}
根对象.cs
using System.Collections.Generic;
namespace BelajarJson
{
public class RootObject
{
public int err_code { get; set; }
public string message { get; set; }
public Paging paging { get; set; }
public List<Content> contents { get; set; }
}
}
MainPage.xaml.xs
using System;
using System.Collections.Generic;
using System.Net;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Reactive;
using Newtonsoft.Json;
namespace BelajarJson
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
private void Load_Click(object sender, RoutedEventArgs e)
{
var w = new WebClient();
Observable
.FromEvent<DownloadStringCompletedEventArgs>(w, "DownloadStringCompleted")
.Subscribe(r =>
{
var deserialized =
JsonConvert.DeserializeObject<List<RootObject>>(r.EventArgs.Result);
PhoneList.ItemsSource = deserialized;
});
w.DownloadStringAsync(
new Uri("http://yumugee.com/json.txt"));
}
}
}
我试图从这里谷歌搜索同样的问题,但仍然没有运气。你有一些建议如何解决这个问题?谢谢你