2017-08-24 5 views
-1

私は以下のコードを参照してJson構造を持っています。Jsonデータをカスタムオブジェクトに解析するC#

"attributes": { 
    "13448": { 
     "id": 13448, 
     "name": { 
      "sv": "H\u00f6jd", 
      "en": "Length", 
      "nb": "Lengde", 
      "de": "", 
      "da": "L\u00e6ngde", 
      "fi": "Pituus" 
     }, 
     "value": { 
      "sv": "Sanderson", 
      "en": "Sanderson", 
      "nb": "Sanderson", 
      "de": null, 
      "da": "Sanderson", 
      "fi": "Sanderson" 
     } 
    }, 
    "13910": { 
     "id": 13910, 
     "name": { 
      "sv": "H\u00f6jd", 
      "en": "Length", 
      "nb": "Lengde", 
      "de": "", 
      "da": "L\u00e6ngde", 
      "fi": "Pituus" 
     }, 
     "value": { 
      "sv": "50s Collection", 
      "en": "50s Collection", 
      "nb": "50s Collection", 
      "de": null, 
      "da": "50s Collection", 
      "fi": "50s Collection" 
     } 
    } 
} 

私は私が唯一の辞書でキーとして名前から値を持っていると思いますカスタムオブジェクトにシリアライズしたいと思います。 をその辞書に値として格納します。

 
Key  | Value | 
-------------------- 
H\u00f6jd|Sanderson| 
Length |Sanderson| 

現時点でだから私のコードI:

foreach(var item in obj["attributes"]) 
{ 
    var attribute = item.First["name"].ToObject<ArticleAttributes>(); 
    var attribute = item.First["value"].ToObject<ArticleAttributes>(); 
} 

そして、私のArticleAttributesクラスのようになります。あなたの特定のケース、最も近いためJSONコンバータを書かなく

public class ArticleAttributes 
{ 
    [JsonProperty("name")] 
    public string Name { get; set; } 

    [JsonProperty("value")] 
    public string value { get; set; } 
} 

答えて

1

事は:

結果をさらに処理することができます。

var val = finalres[13448]["Lengde"].FirstOrDefault(); 

var finalres = res.Attributes 
        .ToDictionary(
         x => x.Value.Id, 
         x => x.Value.Value.Keys 
           .ToLookup(y => x.Value.Name[y], y => x.Value.Value[y])); 

今、あなたはとして使用することができます

関連する問題