在尝试将JSON数组解析为JSON对象时出错



我正在尝试使用以下代码解析JSON数组:

public async Task QuoteAsync()
{
await this.Context.Channel.TriggerTypingAsync();
var client = new HttpClient();
var result = await client.GetStringAsync("https://zenquotes.io/api/random");
JArray qarray = JArray.Parse(result);
JObject quote = JObject.Parse(qarray[0]["q"].ToString());
JObject author = JObject.Parse(qarray[0]["a"].ToString());
await this.ReplyAsync($"{quote} - {author}");
}

我在向zenquotes api发送请求时收到的响应是

[
{
"q": "Be where your enemy is not.",
"a": "Sun Tzu",
"h": "<blockquote>&ldquo;Be where your enemy is not.&rdquo; &mdash; <footer>Sun Tzu</footer></blockquote>"
}
]

我似乎不明白为什么会出现错误,因为我并没有真正看到任何问题。这是我得到的错误:

分析值时遇到意外字符:A.路径",第0行,位置0。

错误发生在第7行:

JObject quote = JObject.Parse(qarray[0]["q"].ToString());

由于第8行是相同的,我预计会出现相同的错误。

根据JObject。分析,

从包含JSON的字符串中加载JObject。

对于"q""a",它只是一个简单的字符串,但不是JSON字符串。因此,您不应该使用JObject.Parse

对于.ToString(),检索qa的值就足够了。

string quote = qarray[0]["q"].ToString();
string author = qarray[0]["a"].ToString();

示例程序

相关内容

  • 没有找到相关文章

最新更新