ここからチュートリアルに従いました
しかし、独自のjsonで実装したい場合、エラーメッセージが表示されました
現在の JSON オブジェクト (例: {"name":"value"}) を型 'System.Collections.Generic.List`1[BelajarJson.RootObject]' に逆シリアル化できません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; }
}
}
ページング.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"));
}
}
}
ここから同じ問題をグーグルで検索しようとしましたが、まだ運がありません。この問題を解決するためのアドバイスはありますか?ありがとうございました