-1

私は、wordpress api jsonを観測可能なコレクションにデシリアライズする際に多くの問題を抱えています。誰もこれについて全く経験はありませんか?Xamarin.Forms WordPress API jsonを使用したObservableCollection

は、ここで私が午前の問題だ:

私はJcontainerにJSONをデシリアライズすることができていますが、私は特別のObservableCollectionにそれをデシリアライズしようとすると、私はそうすることはできませんよ。これは、jsonオブジェクトをObservableCollectionに変換できないことを示しています。それは私のナッツを運転している!

Wordpress API jsonをObservableCollectionにデシリアライズしてListViewに表示できるという実際の実例を誰にでも教えてください。私は、これがどのように機能するのか分かりません。

Btw、私は他のAPI呼び出しを行い、逆シリアル化し、UI要素にバインドすることができました。

EDIT:

は、ここで私が今持っているものです。

通知ページ

public partial class Notification : ContentPage 
{ 
    public Notification() 
    { 
     InitializeComponent(); 
     NotificationList.ItemsSource = NotificationData(); 
    } 
    public static async Task<Alerts> NotificationData() 
    { 
     var notification = await GetAlerts.GetAlert(); 
     return (Alerts)notification; 
    } 
} 

ここ通知

public class GetAlerts 
    { 
    public static async Task<ObservableCollection<Alerts>> GetAlert() 
    { 
     string WPPosts = "URL"; 

     HttpClient client = new HttpClient(); 
     var response = await client.GetAsync(WPPosts).ConfigureAwait(false); 
     Alerts data = null; 
     if (response != null) 
     { 
      string content = await response.Content.ReadAsStringAsync(); 
      string content_sanitized = RemoveTags(content); 
      data = JsonConvert.DeserializeObject<Alerts>(content_sanitized); 
     } 
     return data; 
    } 
    public static string RemoveTags(string content) 
    { 
     string returnStr = ""; 
     bool insideTag = false; 
     for (int i = 0; i < content.Length; ++i) 
     { 
      char c = content[i]; 
      if (c == '<') 
       insideTag = true; 
      if (!insideTag) 
       returnStr += c; 
      if (c == '>') 
       insideTag = false; 
     } 
     return returnStr; 
    } 
} 

を取得し、いくつかの

Error CS0266: Cannot implicitly convert type `System.Threading.Tasks.Task<Namespace.Alerts>' to `System.Collections.IEnumerable'. An explicit conversion exists (are you missing a cast?) (CS0266) 

間、私は私のクラスの一覧を表示しません、私が受けています主なエラーですここまでデシリアライズしています。

+0

ゼロから解決策を提案するのではなく、最初にやっていることを私たちに示してみませんか? – Jason

+0

編集が追加されました。あいまいさを残して申し訳ありません。 – PeterG

+0

特定の行がエラーを投げていますか?私が見る最初の明らかなエラーはObservableCollection を警告にキャストしようとしていることです。これは動作しません。 Alertsクラスは単一のオブジェクトかオブジェクトのコレクションですか? – Jason

答えて

0

データをリストに逆シリアル化する場合。

var list = JsonConvert.Deserialize<IList<MyObject>>(jsonString); 

次にObservableCollectionを作成します。

var collection = new ObservableCollection(list); 
+0

この質問に答えようとしてくれてありがとうございました。私はまだ問題があるので、私はあなたのメソッドを試してみるつもりです! – PeterG

関連する問題