-2

次のような JSON 文字列があります。

var json = "{\"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}";

同じクラスを設計したい。C# で JSON 文字列のクラスを作成するときにどのようにアプローチしますか?

4

3 に答える 3

4

Visual Studio 2012 を使用している場合は、メニューでEDIT -> Paste Special -> Paste JSON As Classesに移動します。

有効な JSON はおそらく次のようになります (\クリップボードにコピーする前に削除する必要があります)。

{"Attributes": {"name":"S1", "quantity":"100"}}

生成されたクラス:

public class Rootobject
{
    public Attributes Attributes { get; set; }
}

public class Attributes
{
    public string name { get; set; }
    public string quantity { get; set; }
}

\使用例 (有効なコード構文を使用するために、 がまだここにあることに注意してください):

var json = "{\"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}";
var json_serializer = new JavaScriptSerializer(); 
Rootobject dc = json_serializer.Deserialize<Rootobject>(json);
于 2013-08-09T12:18:33.613 に答える
0

あなたの質問は不明ですが、JSON を C# オブジェクトに解析することを意味していると思いますか? JSON.NET と次のようなものを使用すると、次のことが可能になります。

public class Attributes
{
    [JsonProperty("name")]
    public String Name { get; set; }

    [JsonProperty("quantity")]
    public Int32 Quantity { get; set; }
}
public class MyObject
{
    [JsonProperty("Attributes")]
    public Attributes Attributes { get; set; }
}

var myObj = JsonConvert.DeserializeObject<MyObject>(json);

または、より広範に行って、JSON.NET に任せることもできます。

 var obj = JsonConvert.DeserializeObject<dynamic>(
   "{ \"Attributes\": {\"name\":\"S1\", \"quantity\":\"100\"}}"
 );
 Console.WriteLine(obj.Attributes["name"])     // S1
 Console.WriteLine(obj.Attributes["quantity"]) // 100
于 2013-08-09T12:22:14.637 に答える
0

名前空間を見てみると、System.Runtime.SerializationJSON をシリアル化 (逆) するための便利なクラスが見つかります。

また、この同様の質問を読むこともできます(投稿する前に検索しても問題はありません):

この複雑な json ドキュメントを C# オブジェクトとして表現するにはどうすればよいですか?

于 2013-08-09T12:22:39.567 に答える