【发布时间】:2018-09-15 01:48:24
【问题描述】:
我现在正在处理一个 Xamarin 项目,并且我使用 Firebase 作为我的数据库。
我有一组数据如下:
我已经设法通过 RESTful 服务检索数据。但是,当我尝试JsonConvert.Deserialize 他们时,我遇到了一个错误,告诉我我无法转换为.NET Collection。
有什么办法可以做到吗?
我的模特
public class TodoItem
{
public string ID { get; set; }
public string Name { get; set; }
public string Notes { get; set; }
public bool Done { get; set; }
}
从 RESTful 服务中检索
public async Task<List<TodoItem>> RefreshDataAsync()
{
Items = new List<TodoItem>();
//RestUrl = refer to constants.cs
var uri = new Uri(string.Format(Constants.RestUrl, string.Empty));
try
{
var response = await client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
Items = JsonConvert.DeserializeObject<List<TodoItem>>(content);
}
}
catch (Exception ex)
{
Debug.WriteLine(@" ERROR{0}", ex.Message);
}
return Items;
}
用户界面
listView.ItemsSource = await App.TodoManager.GetTasksAsync();
更新
变量content的内容是什么
{\"-L9K-8AF9fxZfe6bwTjk\":{\"Done\":false,\"ID\":\"323642ac-89e2-4f14-b9b0-e9b7306aee81\",\"Name\":\"ufhd\",\"Notes\":\"nvnv\"},\"-L9K07oNjtvPQYbdyItU\":{\"Done\":false,\"ID\":\"c7a53ad2-533f-454c-9ac0-5b21c3d2669c\",\"Name\":\"abc\",\"Notes\":\"cde\"},\"-L9K1n1r7Q7ZIgA3KFaD\":{\"Done\":false,\"ID\":\"938bd62f-f117-4733-a1e4-a4ed22233ca3\",\"Name\":\"ffef\",\"Notes\":\"dfg\"}}
【问题讨论】:
-
你不需要另一个模型类来跟踪这个键
user吗? -
在尝试反序列化之前,'content' 变量的实际字符串内容是什么?
-
@RomeoSierra 是吗?它们必须是相同的名称或不同的可以吗?
-
@AppPack 让我为你更新
-
是来自您拥有的 api 吗?它不是您期望的项目列表格式。这就是它无法反序列化的原因
标签: c# json firebase xamarin firebase-realtime-database