c# .net Json get Node



我正在尝试从以下 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,因此您得到异常。

相关内容

  • 没有找到相关文章

最新更新