C#项目中的JSON解析不是数组 [英] JSON parsing in c# item is not an array

查看:137
本文介绍了C#项目中的JSON解析不是数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试解析一个看起来像这样的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆