如何解决尝试将 json 数组解析为 json 对象时出错
我正在尝试使用此代码解析 json 数组
FirebaseAuth.instance
我向 zenquotes api 发送请求后收到的响应是
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}");
}
我似乎无法弄清楚错误发生的原因,因为我真的没有看到任何问题 这是我得到的错误
[
{
"q": "Be where your enemy is not.","a": "Sun Tzu","h": "<blockquote>“Be where your enemy is not.” — <footer>Sun Tzu</footer></blockquote>"
}
]
错误发生在第 7 行
JObject quote = JObject.Parse(qarray[0]["q"].ToString());
并且由于第 8 行是相同的,我预计会出现相同的错误
解决方法
从包含 JSON 的字符串加载 JObject。
对于您的 "q"
和 "a"
,它只是一个简单字符串,但不是 JSON 字符串。因此,您不应使用 JObject.Parse
。
使用 .ToString()
,检索 q
和 a
的值就足够了。
string quote = qarray[0]["q"].ToString();
string author = qarray[0]["a"].ToString();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。