教程,但是当我想用我自己的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
Content.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; }
}
}
Paging.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; }
}
}
RootObject.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"));
}
}
}
我试过谷歌和从这里搜索相同的问题,但仍然没有运气。 你有一些建议如何解决这个问题?谢谢