错误JsonTextReader.ReadAsString()C#使用json.net
我是Json.net的新用户,由于一条错误消息,我被卡住了。 感谢使用json.net的JsonTextReader,我想读取一个json文件 我的json文件是我的类Person的列表,具有以下属性: 使用StreamReader(或TextReader)阅读时,我没有问题。 我想要的是对JsonTextReader类型的输出有相同的结果 以下是我的一段代码,可以帮助您理解: 我的错误是:myString=reader.ReadAsString(); 其他信息:读取字符串时出错。意外标记:StartArray。路径“”,第1行,位置1 我一直在寻找更多的信息,但我发现没有什么可以帮助我 如果你们中有人能帮助我理解这个错误并找到解决方案 以下是我的tr文件内容摘录:错误JsonTextReader.ReadAsString()C#使用json.net,c#,json.net,C#,Json.net,我是Json.net的新用户,由于一条错误消息,我被卡住了。 感谢使用json.net的JsonTextReader,我想读取一个json文件 我的json文件是我的类Person的列表,具有以下属性: 使用StreamReader(或TextReader)阅读时,我没有问题。 我想要的是对JsonTextReader类型的输出有相同的结果 以下是我的一段代码,可以帮助您理解: 我的错误是:myString=reader.ReadAsString(); 其他信息:读取字符串时出错。意外标记:S
[
{
"FirstName": "X",
"LastName": "Y",
"Hobbies": "Cuisine",
"Age": 35,
"Country": "France",
"Address": "unknown",
"Phone": "unknown",
"Gender": "male"
},
{
"FirstName": "W",
"LastName": "Z",
"Hobbies": "Jouer",
"Age": 43,
"Country": "France",
"Address": "unknown",
"Phone": "unknown",
"Gender": "male"
},
...
您只需从代码中删除这一行:
string myString=reader.ReadAsString()代码>Json序列化程序尝试读取其中的字符串,但识别出您正在尝试读取的是一个数组
TextReader tr = File.OpenText(path);
List<Person> myPersonList = new List<Person>();
JsonTextReader reader = new JsonTextReader(tr);
JsonSerializer jseri = new JsonSerializer();
object parsedData = jseri.Deserialize(reader);
示例来自Newtonsoft帮助页面,只需使用常规文本读取器读取文件,然后使用JsonConvert反序列化即可
System.IO.TextReader textReader = System.IO.File.OpenText(path);
string all = textReader.ReadToEnd();
m_Elements = JsonConvert.DeserializeObject<MyType>(all);
System.IO.TextReader=System.IO.File.OpenText(路径);
string all=textReader.ReadToEnd();
m_Elements=JsonConvert.DeserializeObject(全部);
我不太清楚-您是否能够对数据进行反序列化,只是无法返回JsonTextReader类型的文本?@jacoblam抱歉,我不清楚。我有一个函数:public override object ReadJson(JsonReader reader,Type objectType,object existingValue,JsonSerializer serializer),我正在尝试获取一个JsonTextReader,以便在我的函数中调用它。我只是想知道我的JsonTextReader的价值,看看是否一切顺利。(因为我是json.net的初学者,谢谢回答!我还有一个关于json.net使用的问题。如果我在做一个:JObject resultMessage=JObject.Load(reader);对于同一个读取器,我还有一个错误其他信息:从JsonReader读取JObject时出错。当前JsonReader项不是对象:EndArray.Path“”,第1行,位置8811。“这就是为什么我想用字符串myString进行测试。以查看我的JsonTextReader的内容。您认为我的第二个错误是因为:Json序列化程序尝试读取字符串,但识别数组(如您所说)。如果是,是否有方法加载(读取器)?请看我的编辑,但这也只会读取一个Json对象,而不是一个对象数组!我会看看你发给我的网站。再次感谢你的准确回答。
JObject o = new JObject
{
{ "Cpu", "Intel" },
{ "Memory", 32 },
{
"Drives", new JArray
{
"DVD",
"SSD"
}
}
};
JsonReader reader = o.CreateReader();
while (reader.Read())
{
Console.Write(reader.TokenType);
if (reader.Value != null)
Console.Write(" - " + reader.Value);
Console.WriteLine();
}
System.IO.TextReader textReader = System.IO.File.OpenText(path);
string all = textReader.ReadToEnd();
m_Elements = JsonConvert.DeserializeObject<MyType>(all);