如何读取此JSON字符串?

时间:2017-02-13 14:29:01

标签: c# json

如何使用C#从下面的JSON字符串中选择Test中的Id?

{
  "Test": [
    "Hello",
    {
      "Id": 5
    }
  ]
}

这是我在Text中阅读内容的方法,但我无法通过执行同样的操作来访问Id

var test = JObject.Parse(MyJsonString)["Test"];

1 个答案:

答案 0 :(得分:-1)

在C#中处理JSON的简洁方法是使用表示JSON结构的类并将JSON解析为它们。例如,您可以使用json2csharp生成这些类。让我们假设您已经生成了一个类Test作为解析目标:

using Newtonsoft.Json; 
private static readonly JsonSerializerSettings StrictJsonSettings = new JsonSerializerSettings {
    MissingMemberHandling = MissingMemberHandling.Error
};
Test test = JsonConvert.DeserializeObject<Test>(MyJsonString, StrictJsonSettings);
var jsonId = test[1].Id;

hacky方法是将结果转换为dynamic

var parsedJson = JObject.Parse(MyJsonString) as dynamic;
var jsonId = parsedJson.Test[1].Id;