C# 当前JsonReader项不是对象

C# 当前JsonReader项不是对象,c#,json,unit-testing,parsing,json.net,C#,Json,Unit Testing,Parsing,Json.net,首先,我制作了一个应用程序,然后我开始对它进行测试(知道这不是一个好方法),解析等一切都很好,但在我进行了一些测试之后,出现了一个错误: Newtonsoft.Json.JsonReaderException:从JsonReader读取JObject时出错。当前JsonReader项不是对象:StartArray。路径“”,第1行,位置1 在那里发生错误jObject=jObject.Parse(content)和那里arrayList=JArray.Parse(content) 你知道怎么了吗

首先,我制作了一个应用程序,然后我开始对它进行测试(知道这不是一个好方法),解析等一切都很好,但在我进行了一些测试之后,出现了一个错误:

Newtonsoft.Json.JsonReaderException:从JsonReader读取JObject时出错。当前JsonReader项不是对象:StartArray。路径“”,第1行,位置1

在那里发生错误
jObject=jObject.Parse(content)
和那里
arrayList=JArray.Parse(content)

你知道怎么了吗? 顺便说一句,
字符串内容
是我从服务器获得的json。 提前谢谢

JSON
我遇到了一个非常类似的问题。我的JObject.Parse(json)对我不起作用的原因是因为我的json有一个开头“[”和一个结尾“]。为了让它工作,我不得不删除这两个字符。我将检查您的Json并确保它以{开头,以}结尾

对我来说,我删除了第一个和最后一个字符

jsonResult = jsonResult.TrimStart(new char[] { '[' }).TrimEnd(new char[] { ']' });
我也有类似的问题。
返回的JSON是数组/列表,但不是对象
相反,我使用JArray.Parse,它可以工作

jArray = JArray.Parse(content);

让你的JSON(而不是C#代码)成为问题的根源是非常有用的。你能发布你从服务器上得到的JSON吗。根据错误,您提供给JObject.Parse()和JArray.Parse()的内容不合适,即第一种情况下不是JObject,第二种情况下不是JArray。此外,在调试所有其他内容之前,请使用服务验证JSON,例如我使用我编辑的JSONgot@DerpyUnKnown不这不是为了解决你的问题。这是为了确定你的问题所在,即问题是你的JSON还是你的C#代码。您需要修复产生JSON服务器端的任何问题,我们对此无能为力。这解决了我的问题。API返回了包含在
[
]
中的JSON。非常感谢!嵌套数组的情况如何?解析器是否太弱,以至于我必须检测每个子项并确保它们是对象而不是数组?这有一个名称。。这两个神奇的字符[和]意味着您正在查看一个json数组。。。而不是由{和}包围的json对象
jsonResult = jsonResult.TrimStart(new char[] { '[' }).TrimEnd(new char[] { ']' });
jArray = JArray.Parse(content);