我经历了一些对 json文件进行反序列化的工作,直到我意识到原因是该文件被格式化,美化,美化了。
使用Newtonsoft.Json
库并调用
JsonConvert.DeserializeObject<myObject>(mystring);
throws a JsonSerializationException
:
{"Unexpected end when reading JSON. Path '', line 1, position 1."}
然后,当我重复该操作,但是使用相同文件的缩小,压缩等版本时,它就可以工作。
在两种情况下,是否都可以使用此libray并反序列化数据?
谢谢!
答案 0 :(得分:0)
您的json有效,您的模型应该是这样
public class Step
{
public int StepID { get; set; }
public string Description { get; set; }
public List<int> ShutMoves { get; set; }
public List<int> FeatIDs { get; set; }
public List<int> ExpSettings { get; set; }
}
public class Part
{
public int PartID { get; set; }
public string Description { get; set; }
public bool Moving { get; set; }
public List<int> FeatIDs { get; set; }
}
public class Feat
{
public int FeatID { get; set; }
public int CamID { get; set; }
public int CamFeatID { get; set; }
public int PartID { get; set; }
}
public class RootObject
{
public List<Step> Steps { get; set; }
public List<Part> Parts { get; set; }
public List<Feat> Feats { get; set; }
}
答案 1 :(得分:0)
小例子-
public void JsonDeserializeTesting() {
var testingModal = new TestingModal{Id = 1,Name = "Eminem",};
var serializeObject = JsonConvert.SerializeObject(testingModal);
var deserializeObject = JsonConvert.DeserializeObject<TestingModal>
(serializeObject);
Console.WriteLine($"{deserializeObject}");
}
public class TestingModal{
public long Id { get; set; }
public string Name { get; set; }
}
我希望这会为您提供有关如何使用反序列化的抽象视图。
答案 2 :(得分:0)
这是我的错误。我正在反序列化的字符串是通过使用ReaLine()获得的。所以我的代码只解析文件的第一行。
从流甚至File.ReadAllText中读取ReadToEnd()即可解决问题。
谢谢您的帮助。