2012-11-21 36 views
1

我有以下代碼在WCF序列化鍵/值JSON

[DataContract] 
    public class DeviceParam 
    { 
     public long ID { get; set; } 
     [DataMember] 
     public string Key { get; set; } 
     [DataMember(EmitDefaultValue = false)] 
     public string Value { get; set; } 
     [DataMember(Name = "param", EmitDefaultValue = false)] 
     public List<DeviceParam> Param { get; set; } 
    } 

問題是,它是生產:

{"Key":"Param1","param":[{"Key":"ParamChild1","Value":"1"}]}] 

我這個努力達到預期的格式:

{"Param1": {"ParamChild1" : "1" }} 

我無法做到這一點,因爲類包含它自己的類。看起來像WCF不喜歡我所做的所有修改,以實現它。

WCF輸出JSON的最佳實現方式是什麼?

謝謝!

+0

也許你可以試試這個:http://james.newtonking.com/projects/json- net.aspx(http://james.newtonking.com/projects/json/help/) –

+0

但你想要的格式不是json,我認爲你必須創建自己的格式化程序 –

+0

@DotNeter - 爲什麼不是這個JSON? ? – Himberjack

回答

0

把你的類,如下所示:

[DataContract] 
    public class DeviceParam 
    { 
     public long ID { get; set; } 
     [DataMember] 
     public string Key { get; set; } 
     [DataMember(EmitDefaultValue = false)] 
     public string Value { get; set; } 
    } 
[DataContract] 
    public class DeviceParamsList 
    { 
     [DataMember(Name = "param", EmitDefaultValue = false)] 
     public List<DeviceParam> Param { get; set; } 
    } 

我還沒有嘗試過,但是這個應該工作