C#和#xA0;导航JSON结构嵌套返回NullReferenceException

C#和#xA0;导航JSON结构嵌套返回NullReferenceException,c#,json,json.net,C#,Json,Json.net,我正在使用OpenLibrary API从图书的ISBN号中收集信息 我创建了一个简单的JSON设置,但无法让它从嵌套结构中检索值 指向JSON的链接是: 我正在尝试访问“title”值。在这种情况下,它应该返回:哈利波特和魔法石 我的代码是: Console.WriteLine("Enter the ISBN: "); String isbn = Console.ReadLine(); String url = "http://openlibrary.org/ap

我正在使用OpenLibrary API从图书的ISBN号中收集信息 我创建了一个简单的JSON设置,但无法让它从嵌套结构中检索值

指向JSON的链接是:

我正在尝试访问“title”值。在这种情况下,它应该返回:
哈利波特和魔法石

我的代码是:

Console.WriteLine("Enter the ISBN: ");
String isbn = Console.ReadLine();
String url = "http://openlibrary.org/api/books?bibkeys=ISBN:" + isbn + "&jscmd=details&format=json";
String json = new WebClient().DownloadString(url);

JObject jsonObject = JObject.Parse(json);
JToken details = jsonObject["ISBN:" + isbn + ".details"];
String title = (string) details["title"];
Console.WriteLine(title);
该错误是一个System.NullReferenceException(对象引用未设置为对象的实例),它是在
JToken details=jsonObject[“ISBN:+ISBN+”.details“]行上引起的

我已经在其他问题上看到了使用。我想通过这个结构,但我似乎什么都做不到


提前感谢。

您需要使用
SelectToken()
,您的代码将正常工作

Console.WriteLine("Enter the ISBN: ");
String isbn = "0747532699";
String url = "http://openlibrary.org/api/books?bibkeys=ISBN:" + isbn + "&jscmd=details&format=json";
String json = new WebClient().DownloadString(url);

JObject jsonObject = JObject.Parse(json);
JToken details = jsonObject.SelectToken("ISBN:" + isbn + ".details");
String title = (string)details["title"];
Console.WriteLine(title);

非常感谢你。它现在工作得很好。