0

重複の可能性:
C# で JSON を解析する

JSON.NET を使用して、ASP.NET (4.5) Web アプリケーションで openlibrary.org から JSON 文字列を逆シリアル化しようとしています。

私の目的は、以下の 5 つのプロパティを単一の .Net オブジェクトから読み取れるようにすることです。

私が持っている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)

そしてクラス Book:

Public Class Book
    Public bib_key As String
    Public preview As String
    Public preview_url As String
    Public info_url As String
End Class

しかし、本は空になります。

4

3 に答える 3

1

json2csharpという Web サイトがあります- 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

于 2012-12-22T02:17:54.017 に答える
1

JSON.Netを使ってみる

また

JavaScriptSerializerクラス

また

DataContractSerializerクラス

于 2012-12-22T03:13:19.403 に答える
1

ディクショナリとしてデシリアライズできると思います。

new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Dictionary<string, BookInfoClass>>(jsonString);
于 2012-12-22T04:14:34.463 に答える