将自定义列表序列化为 JSON 并使用 Newtonsoft 将其反序列化为该自定义列表
Serialize a custom List to JSON and deserialize the same to that custom list using Newtonsoft
在我的 Windows 8.1 应用程序中,我想将自定义生成的列表的结果以最佳方式存储到我的本地存储中,这样即使在应用程序关闭后我也可以稍后检索它。
Newtonsoft JSON 序列化程序帮助我将列表序列化为可以存储在任何文本文件中的字符串格式。但是反序列化它不会获取所需的列表。
Class
public class BookDetailsItem
{
public string Id { get; set; }
public ImageSource CoverImage { get; set; }
public string Name { get; set; }
public Visibility ProgressVisi { get; set; }
public List<StoryDetailsItem> stories { get; set; }
}
public class StoryDetailsItem
{
public string Id { get; set; }
public string Name { get; set; }
public ImageSource CoverImage { get; set; }
public string Time { get; set; }
public string Word { get; set; }
public Visibility ProgressVisi { get; set; }
}
现在我将我需要的项目添加到这个 class
的列表中
List<BookDetailsItem> tempbook = new List<BookDetailsItem>();
tempbook.Add(......);
现在序列化它我可以将它存储在任何 txt 文件中
string tempstr = JsonConvert.SerializeObject(tempbook);
但是反序列化它我怎样才能取回相同的列表我得到的只是一个格式不正确的对象
var obj1 = (JsonConvert.DeserializeObject(tempstr));
有没有其他方法可以更轻松、更优化地将这些数据存储在本地存储中(无需创建 SQlite 数据库)。
使用
var obj1 = JsonConvert.DeserializeObject<List<BookDetailsItem>>(tempstr)
为解串器提供类型信息。
无法序列化 ImageSource 对象。
尝试将其保存为字节[]
在我的 Windows 8.1 应用程序中,我想将自定义生成的列表的结果以最佳方式存储到我的本地存储中,这样即使在应用程序关闭后我也可以稍后检索它。
Newtonsoft JSON 序列化程序帮助我将列表序列化为可以存储在任何文本文件中的字符串格式。但是反序列化它不会获取所需的列表。
Class
public class BookDetailsItem
{
public string Id { get; set; }
public ImageSource CoverImage { get; set; }
public string Name { get; set; }
public Visibility ProgressVisi { get; set; }
public List<StoryDetailsItem> stories { get; set; }
}
public class StoryDetailsItem
{
public string Id { get; set; }
public string Name { get; set; }
public ImageSource CoverImage { get; set; }
public string Time { get; set; }
public string Word { get; set; }
public Visibility ProgressVisi { get; set; }
}
现在我将我需要的项目添加到这个 class
的列表中List<BookDetailsItem> tempbook = new List<BookDetailsItem>();
tempbook.Add(......);
现在序列化它我可以将它存储在任何 txt 文件中
string tempstr = JsonConvert.SerializeObject(tempbook);
但是反序列化它我怎样才能取回相同的列表我得到的只是一个格式不正确的对象
var obj1 = (JsonConvert.DeserializeObject(tempstr));
有没有其他方法可以更轻松、更优化地将这些数据存储在本地存储中(无需创建 SQlite 数据库)。
使用
var obj1 = JsonConvert.DeserializeObject<List<BookDetailsItem>>(tempstr)
为解串器提供类型信息。
无法序列化 ImageSource 对象。
尝试将其保存为字节[]