【发布时间】:2018-08-19 19:38:06
【问题描述】:
所以我试图将一些数据反序列化到一个集合中。 当我尝试反序列化包含 json 的文件的内容时遇到问题。
这就是我存储数据的方式。
WebItem = new WebsiteItemViewModel
{
Title = "Twitter Item",
Description = "Here is a long description that might be crossing the bounds but thats fine.",
Image = "../resources/twitter.png"
};
string resultJson2 = JsonConvert.SerializeObject(WebItem);
File.AppendAllText("Testfile", resultJson2);
这就是我尝试反序列化数据的方式:
private void OnLoadData_Click(object sender, RoutedEventArgs e)
{
string data = File.ReadAllText("Testfile");
var deserialize = JsonConvert.DeserializeObject<WebsiteItemViewModel>(data);
}
但是当我点击反序列化时,它会抛出该错误
Newtonsoft.Json.JsonReaderException: '遇到其他文本 读完 JSON 内容后:{.路径'',第 1 行,位置 154.'
这就是 json 数据的样子。
{"Title":"Facebook Item","Description":"这是一个很长的描述 这可能会越界,但就是这样 很好。","图片":"../resources/Facebook.png"}{"标题":"Facebook Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/Facebook.png"}{"标题":"Twitter Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/twitter.png"}{"标题":"Facebook Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/Facebook.png"}{"标题":"Twitter Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/twitter.png"}{"标题":"推特 Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/twitter.png"}{"标题":"Facebook Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/Facebook.png"}{"标题":"Facebook Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/Facebook.png"}{"标题":"Twitter Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/twitter.png"}{"标题":"Facebook Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/Facebook.png"}{"标题":"Twitter Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/twitter.png"}{"标题":"推特 Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/twitter.png"}{"标题":"Facebook Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/Facebook.png"}{"标题":"Facebook Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/Facebook.png"}{"标题":"Facebook Item","Description":"这是一个很长的描述,可能会交叉 界限,但仅此而已 很好。","图片":"../resources/Facebook.png"}{"标题":"Twitter Item","Description":"这是一个很长的描述,可能会交叉 界限,但没关系。","Image":"../resources/twitter.png"}
型号
[Serializable]
public class ClassName...
[JsonProperty("Title")]
public string Title
{
get { return _title; }
set
{
_title = value;
OnPropertyChanged("Title");
}
}
[JsonProperty("Description")]
public string Description
{
get { return _description; }
set
{
_description = value;
OnPropertyChanged("Description");
}
}
[JsonProperty("Image")]
public string Image
{
get { return _image; }
set
{
_image = value;
OnPropertyChanged("Image");
}
}
【问题讨论】:
-
您的 json 数据无效
-
文件内容似乎不是有效的 json。似乎因为使用了
File.AppendAllText,您只是将一些 json 对象一个接一个地放在文件中。 -
哦,我如何一次追加一个对象以使 id 有效?
-
@MarkDenom 你想读取 json 数据是一个数组吗?
-
其实你需要在文件中存储一个json数组。