1

我正在尝试titleworks以下 Json 文本中获取信息:

Json_Text.html

但是使用此代码时出现错误:

for (int i = 0; i < 4; i++)
{
    var Title = obj["works"][i]["title"] as JArray;

    myTextbox.Text += "\n" + Title.ToString();
}

错误在myTextbox

你调用的对象是空的。

我究竟做错了什么?

如果我使用它,我确实会在“works”=>“authors”中获取所有信息:

var Title = obj["works"][i]["authors"] as JArray;

但这不是我想要的。

4

3 回答 3

1

问题在于表达式的类型obj["works"][i]["title"]

我认为它应该是一个字符串

var Title = obj["works"][i]["title"];
myTextbox.Text += "\n" + Title.ToString();
于 2013-11-12T19:49:05.083 回答
0

我不确定您使用的是什么 JSON 库,但是当它只是一个字符串时,看起来您正在将标题转换为数组。Authors 似乎是您链接的页面上的一个数组。

尝试类似:

for (int i = 0; i < 4; i++)
{
    var Title = obj["works"][i]["title"]; //without the cast

    myTextbox.Text += "\n" + Title.ToString();
}
于 2013-11-12T19:47:37.973 回答
0

您正在尝试执行以下操作:

var Title = obj["works"][i]["title"] as JArray;

其中 'title' 不是 JSON 数组。

然而:

var Title = obj["works"][i]["authors"] as JArray;

有效,因为如果您查看图表,您可以看到作者是一个数组,然后您将其放入 Title。

标题然后是空的,所以你得到你的例外。

于 2013-11-12T20:00:13.293 回答