如何将wcf服务的嵌套json反序列化为对象

时间:2016-06-17 11:45:07

标签: json wcf deserialization

我创建了一个Web服务来接收来自Android json的数据。

我收到的json是:

{
"assignmentId":"5476",
"newProductName":"ALGOBOX NET USB",
"Attributes": {
"Ammyy": "fvhbhgfc",
"Database": "h j j i i ",
"Plan": "555555555"
}
}

我想反序列化json,虽然我设法反序列化根元素,但是无法反序列化嵌套:

"Attributes": {
"Ammyy": "fvhbhgfc",
"Database": "h j j i i ",
"Plan": "555555555"
}

问题是属性必须是动态的(Ammmy,数据库等),所以我不能用这些字符串创建一个类。我想将嵌套对象反序列化为Dictionary或KeyValuePair。

我创建的类是:

public class RequestDataNewProduct
{
    public string assignmentId { get; set; }
    public string newProductName { get; set; }
    public List<Atts> Attributes { get; set; }
}


public class Atts
{
    public List<KeyValuePair<string, string>> Attributes { get; set; }
}

任何帮助?

1 个答案:

答案 0 :(得分:0)

你的json的C#类型等效应该看起来像 -

public class Attributes
{
    public string Ammyy { get; set; }
    public string Database { get; set; }
    public string Plan { get; set; }
}

public class RequestDataNewProduct
{
    public string assignmentId { get; set; }
    public string newProductName { get; set; }
    public Attributes Attributes { get; set; }
}

然后只是反序列化它 -

var t = JsonConvert.DeserializeObject<RequestDataNewProduct>(json); //success
Console.WriteLine(t.Attributes.Ammyy); //fvhbhgfc