可能重复:
Parse JSON in C#
我正在尝试使用JSON.NET在ASP.NET(4.5)Web应用程序中从openlibrary.org反序列化JSON字符串。
我的目标是能够从单个.Net对象中读取以下5个属性。
example JSON 我有:
{"ISBN:0201558025":
{
"bib_key": "ISBN:0201558025",
"preview": "noview",
"thumbnail_url": "http://covers.openlibrary.org/b/id/135182-S.jpg",
"preview_url": "http://openlibrary.org/books/OL1429049M/Concrete_mathematics",
"info_url": "http://openlibrary.org/books/OL1429049M/Concrete_mathematics"
}
}
我可以让它在没有第一行的情况下正常工作,但是我有点迷失了,试图弄清楚我应该如何构建我的类。
我是JSON的新手,几年后没有玩过C#/ VB.NET,所以非常迷失。
更新
我有以下代码:
Dim url = "http://openlibrary.org/api/books?bibkeys=ISBN:0201558025&format=json"
Dim webClient = New System.Net.WebClient
Dim json = webClient.DownloadString(url)
Dim book As Book = JsonConvert.DeserializeObject(Of Book)(json)
班级书:
Public Class Book
Public bib_key As String
Public preview As String
Public preview_url As String
Public info_url As String
End Class
然而,书却空了。
答案 0 :(得分:1)
有一个名为json2csharp的网站 - 从json生成c#类:
public class RootObject
{
public string bib_key { get; set; }
public string preview { get; set; }
public string thumbnail_url { get; set; }
public string preview_url { get; set; }
public string info_url { get; set; }
}
json格式稍微关闭,删除{“ISBN:0201558025”:因为您的ISBN为bib_key
答案 1 :(得分:1)
答案 2 :(得分:1)
我认为它可以被反序列化为字典。
new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Dictionary<string, BookInfoClass>>(jsonString);