我正在尝试从以下 Json 文本中的works
获取title
:
Json_Text.html
但是使用此代码时出现错误:
for (int i = 0; i < 4; i++)
{
var Title = obj["works"][i]["title"] as JArray;
myTextbox.Text += "n" + Title.ToString();
}
错误位于myTextbox
:
对象引用未设置为对象的实例。
我做错了什么?
如果我使用它,我确实会得到"作品"=>"作者"中的所有信息:
var Title = obj["works"][i]["authors"] as JArray;
但这不是我想要的。
问题出在表达式的类型上obj["works"][i]["title"]
我认为它应该是一个字符串
var Title = obj["works"][i]["title"];
myTextbox.Text += "n" + Title.ToString();
我不确定您使用的是哪个 JSON 库,但看起来您正在将标题转换为数组,而它只是一个字符串。 作者似乎是您链接的页面上的数组。
尝试类似操作:
for (int i = 0; i < 4; i++)
{
var Title = obj["works"][i]["title"]; //without the cast
myTextbox.Text += "n" + Title.ToString();
}
您正在尝试执行以下操作:
var Title = obj["works"][i]["title"] as JArray;
其中"标题"不是 JSON 数组。
而:
var Title = obj["works"][i]["authors"] as JArray;
有效,因为如果你看你的图表,你可以看到作者是一个数组,然后你把它放到标题中。
然后标题为 null,因此您得到异常。