2011-09-14 10 views
0

JSON.NETを使用して.NETオブジェクトをJSONにシリアル化する際に問題が発生しています。私はシリアライズしたい出力は次のように見えることがあります:Json.NETオブジェクトをシリアライズすると間違った出力が返される

public class Members 
{ 
    public List<Member> MemberList { get; set; } 
} 

と::

(まだ右の出力を得るために実験)今の

{"members":[ 

    {"member": 
     { 
      "id":"4282", 
      "status":"1931", 
      "aktiv":"1", 
      "firmanavn":"firmname1", 
      "firmaUrl":"www.firmurl.dk", 
      "firmaUrlAlternativ":"", 
      "firmaSidstKontrolleretDato":"30-08-2010", 
      "firmaGodkendelsesDato":"07-03-2002" 
     } 
    }, 
    {"member": 
     { 
      "id":"4283", 
      "status":"1931", 
      "aktiv":"1", 
      "firmanavn":"firmname2", 
      "firmaUrl":"www.firmurl.dk", 
      "firmaUrlAlternativ":"", 
      "firmaSidstKontrolleretDato":"30-08-2010", 
      "firmaGodkendelsesDato":"18-12-2000" 
     } 
}, 
     ...... long list of members omitted 

マイ.NET構造は次のようです呼び出し時に上記の.NET構造が私を与える何

public class Member 
{ 
    [JsonProperty(PropertyName = "Id")] 
    public string Id { get; set; } 

    [JsonProperty(PropertyName = "Status")] 
    public string Status { get; set; } 

    [JsonProperty(PropertyName = "Aktiv")] 
    public string Aktiv { get; set; } 

    [JsonProperty(PropertyName = "Firmanavn")] 
    public string Firmanavn { get; set; } 

    [JsonProperty(PropertyName = "FirmaUrl")] 
    public string FirmaUrl { get; set; } 

    [JsonProperty(PropertyName = "AltFirmaUrl")] 
    public string AlternativFirmaUrl { get; set; } 

    [JsonProperty(PropertyName = "FirmaSidstKontrolleretDato")] 
    public string FirmaSidstKontrolleretDato { get; set; } 

    [JsonProperty(PropertyName = "FirmaGodkendelsesDato")] 
    public string FirmaGodkendelsesDato { get; set; } 
} 

string json = JsonConvert.SerializeObject(members, Newtonsoft.Json.Formatting.Indented); 

ここで 'members'はメンバーのリストです。これは、次のとおりです。

{ 
    "Members": [ 
    { 
     "Id": "1062", 
     "Status": "1933", 
     "Aktiv": "1", 
     "Firmanavn": "firmname", 
     "FirmaUrl": "http://www.firmurl.dk", 
     "AltFirmaUrl": "http://www.altfirmurl.dk", 
     "FirmaSidstKontrolleretDato": "13-09-2011", 
     "FirmaGodkendelsesDato": "13-09-2511" 
    }, 
    { 
     "Id": "1060", 
     "Status": "1933", 
     "Aktiv": "1", 
     "Firmanavn": "firmname2", 
     "FirmaUrl": "http://www.firmurl.dk", 
     "AltFirmaUrl": "http://www.altfirmurldk", 
     "FirmaSidstKontrolleretDato": "13-09-2011", 
     "FirmaGodkendelsesDato": "13-09-2511" 
    }, 

だから基本的には、構造は右のそれは予想通りのメンバーの配列を作成していることであるが、私は「メンバーを」行方不明です:ラベルをメンバーオブジェクトのそれぞれに。そのようなラベルを作る方法はありますか?何らかのクラス宣言、または何か?

私の質問がはっきりしていないことを願っています。私に知らせてください、私はさらに説明しようとします。

ありがとうございます。

/ボー

+2

この場合、JSON.NETによって作成されたJSONが優れています。そのオブジェクトがシリアライズされている1つのプロパティを持つオブジェクトを作成すると、何が購入されますか? – Tejs

+0

@Tejs +1、私はあなたに同意しますが、おそらくOPは外部APIの期待に縛られていますか? – user937146

+0

あなたは絶対に正しいです:)私はまだ別のオブジェクトであるすべてのプロパティを保持するメンバーを表す別のクラスを作っていたありがとうございました!あなたは答えを作りますか?それから私は喜んでそれを受け入れるでしょう。再度、感謝します! – bomortensen

答えて

1

あなたはちょうどあなたがしたいJSONを取得するには、その名前のプロパティを持つオブジェクトの仲介をする必要があるようですね。しかし、JSON.netを元来レンダリングしたJSONを使用することを検討します(構造的に優れているため)。

関連する問題