我有很多反序列化wordpress api json到可觀察集合的問題。有沒有人有這方面的經驗?Xamarin.Forms使用WordPress API的ObservableCollection json
這裏是我遇到的問題:我能反序列化JSON成Jcontainer
,但是當我專門嘗試將其反序列化到一個ObservableCollection我不能這樣做。它告訴我它不能將json對象轉換成ObservableCollection。這讓我瘋狂!
任何人都可以提供一個實際的工作示例,能夠將wordpress API json反序列化爲ObservableCollection並將其顯示在ListView中。我認爲這是可能的,我只是不明白這應該如何工作。
順便說一句,我已經能夠進行其他API調用,反序列化它們,並將它們綁定到UI元素。
編輯:
這就是我現在所擁有的。
通知頁面
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)
我就不一一列舉了類中的主要錯誤,我我正在反序列化到這裏。
你爲什麼不告訴我們你在做什麼第一,而不是要求我們拿出了一個從無到有的解決方案嗎? – Jason
添加編輯。對於含糊不清的抱歉。 – PeterG
哪條特定線路正在拋出錯誤?我看到的第一個明顯的錯誤是,您正嘗試將ObservableCollection投射到警報,這不起作用。警報類是單個對象還是對象集合? –
Jason