在.Net中反序列化Json字符串而不创建Type或匿名类型

时间:2014-07-19 19:30:00

标签: .net json

我有以下格式的JSON字符串。

{
  "Request": {
    "Header": { "Action": "Login" },
    "DataPayload": {
      "UserName": "user",
      "Password": "password"
    }
  }
}

我需要反序列化上面的JSON字符串而不创建任何Type或Anonymous类型,我应该能够在.NET中访问如下所示的属性。

Request.Header.Action:获取行动价值。
Request.DataPayload.UserName:获取用户名。

1 个答案:

答案 0 :(得分:3)

您可以使用Json.NET轻松完成此操作。

将您的字符串解析为JObject并将其用作字典:

var obj = JObject.Parse(str);
var action = obj["Request"]["Header"]["Action"];

如果您不介意丢失静态类型,请将其反序列化为动态对象:

dynamic obj = JsonConvert.DeserializeObject<dynamic>(str);
var action = obj.Request.Header.Action;