如何映射数据合同以参考JSON对象中的正确字段



我正在收到一个看起来像下面示例的JSON对象。

{
" name1":{" name1a":" value1a"," name1b":" value1b"},
" name2":{" name2a":" value2a"," name2b":" value2b"}
}

我已经为其设置了一个数据合同(因为目前我只需要访问一个数据字段)。

[DataContract]
public class MyThingy
{
  [DataMember(Name="name1b")]
  public string Name1b { get; set; }
  public MyThingy() { }
  public MyThingy(String name1b)
  {
    Name1b = name1b;
  }
}

当我序列化对象时,我会尝试将其打印出来(因为我得到了类的字符串描述),并且它们是字段Name1b。最后一部分不起作用,我在那里得到null。我的猜测是我一定已经错误地映射了数据合同,但我看不到如何纠正它。

应该如何声明MyThingy类?

如本文所述,我的json对象被获取。

我在这里使用javascriptserializer

string json = @"{
    ""name1"":{""name1a"":""value1a"",""name1b"":""value1b""},
    ""name2"":{""name2a"":""value2a"",""name2b"":""value2b""}
    }";
var obj = new JavaScriptSerializer()
          .Deserialize<Dictionary<string, Dictionary<string, string>>>(json);
Console.WriteLine(obj["name1"]["name1b"]);

您也可以一起使用json.net和 dynamic

dynamic  obj = JsonConvert.DeserializeObject(json);
Console.WriteLine(obj.name1.name1b);

最新更新