在WCF JSON中序列化键/值

时间:2012-11-21 11:57:19

标签: .net json wcf

我有以下代码

[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实现此功能的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分: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; }
  }

我没有尝试过,但这应该有用