2017-06-07 2 views
0

jsonファイルをデシリアライズして、クラスのセットで宣言された変数に値を格納しようとしています。 jsonファイルは以下の通りですjavascriptserializerを使用してデシリアライズすると、同じフィールド名が見つかると例外がスローされます

{ 
    "name"   : "sectionname", 
    "section"  : 44, 
    "comment"  : "Example , 
    "dimensions" : [ 
     { 
     "name"  : "rtfss", 
     "elements" : 34, 
     "comment" : "sdada" 
     }, 
] 
} 

2つの名前とコメントフィールドがあるため、jsonをデシリアライズできません。この問題を解決するには?私はjsonのデータを変更できません。 Plsヘルプ。

答えて

1

dimensionsコレクションのデータを格納するためにネストされたオブジェクトを作成する必要があります。

public class Dimension 
{ 
    public string name { get; set; } 
    public int elements { get; set; } 
    public string comment { get; set; } 
} 

public class MyObject 
{ 
    public string name { get; set; } 
    public int section { get; set; } 
    public string comment { get; set; } 
    public List<Dimension> dimensions { get; set; } 
} 

次に、あなたがMyObjectにあなたのJSONのデータをdeserialiseすることができます。

json2csharpのようなオンラインツールがあります。あなたはそれをあなたのJsonに与えることができ、次にあなたのためにC#のクラスを生成します。

サイドノートでは、提供したJsonにエラーがあります。 "Example"には閉じ引用符がありません。

次に、デシリアライズを実行するシリアル化ツールを使用できます。

var deserialisedObject = JsonConvert.Deserialise<MyObject>(jsonString); 
+0

こんにちは、ありがとうございました。それはうまく動作しますが、時には次元パラメータがまったく存在しないことがあります。あなたはそれに対処する方法を教えてください。次元データがない場合、私は再び例外を得る。 – Sanga

+0

こんにちは,,上記のクエリを無視してください。良い一日を :) – Sanga

関連する問題