C#项目中的JSON解析不是数组 [英] JSON parsing in c# item is not an array
问题描述
我正在尝试解析一个看起来像这样的JSON字符串:
I am trying to parse a JSON string, that looks like that:
{
"totalCreditsRemoved": 1,
"invalidReceivers": [],
"ids": [100070531],
"validReceivers": ["+33635938286"]
}
我从Web API检索此信息,并将其作为字符串存储:
I retrieve this from a web API, and stock it as a String:
var reader = new StreamReader(respStream);
String result = reader.ReadToEnd().Trim();
response = result;
响应是公共字符串
然后,以另一种方法:我尝试解析我的json字符串:
Then, in another method: I try to parse my json string:
var json = response;
var objects = JArray.Parse(json);
foreach (JObject root in objects)
{
foreach (KeyValuePair<String, JToken> app in root)
{
totalCreditsRemoved = (String)app.Value["totalCreditsRemoved"];
invalidReceivers = (String)app.Value["invalidReceivers"];
ids = (String)app.Value["ids"];
validReceivers = (String)app.Value["validReceivers"];
}
}
但我总是会收到此错误:
But I always get this error:
JsonReaderException:从JsonReader读取JArray时出错.当前JsonReader项不是数组:StartObject.路径",第1行,位置1.
JsonReaderException: Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1.
此行发生错误:
var objects = JArray.Parse(json);
我不知道该如何解决? OVHjson还不是数组 预先感谢!
I don't understand how to fix this ? Isn't OVHjson already an array Thanks in advance!
推荐答案
不需要JArray.Parse,因为它不是数组..并且正在执行过度杀伤..因此,错误..
No need for JArray.Parse as it is not a array ..and is doing an overkill..hence the error..
var objects = JObject.Parse(json);
var objects = JObject.Parse(json);
会做
并提取
totalCreditsRemoved = (String)objects.Value["totalCreditsRemoved"];
invalidReceivers = (String)objects.Value["invalidReceivers"];
ids = (String)objects.Value["ids"];
validReceivers = (String)objects.Value["validReceivers"];
这篇关于C#项目中的JSON解析不是数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!