C# 获取嵌套的JSON值

C# 获取嵌套的JSON值,c#,json,C#,Json,我向API发送了一个请求,并得到了这个JSON: {{ "id": 1, "name": "LoginTest", "status": "ready", "testvalues_count": 2, "testvalues": [ { "id": 1, "name": "Username", "value": "Test" }, { "id": 2, "name": "Password",

我向API发送了一个请求,并得到了这个JSON:

{{
  "id": 1,
  "name": "LoginTest",
  "status": "ready",
  "testvalues_count": 2,
  "testvalues": [
    {
      "id": 1,
      "name": "Username",
      "value": "Test"
    },
    {
      "id": 2,
      "name": "Password",
      "value": "password1"
    }
  ]
}}
我可以轻松获得
名称
项的值:

var api = new DataApi();
var json = api.GetTestData("LoginTest");
dynamic testData = JsonConvert.DeserializeObject<dynamic>(json);
var name = testData.name;
var-api=new-DataApi();
var json=api.GetTestData(“LoginTest”);
DynamicTestData=JsonConvert.DeserializeObject(json);
var name=testData.name;

但是我还需要
用户名
密码
项的值。如何才能做到这一点?

只需将json对象粘贴到菜单VS Edit/Special paste中,就可以为json创建一个类

public class Rootobject
{
    public int id { get; set; }
    public string name { get; set; }
    public string status { get; set; }
    public int testvalues_count { get; set; }
    public Testvalue[] testvalues { get; set; }
}

public class Testvalue
{
    public int id { get; set; }
    public string name { get; set; }
    public string value { get; set; }
}
然后

Rootobject testData=JsonConvert.DeserializeObject(json);

不要使用
动态
,每次这样做都会导致小猫死亡。相反,使用一个合适的类。另外,你给我们的不是有效的JSON,你是不是想用额外的
{…}
?与其发布这个,不如指向你在这里使用的“将JSON粘贴为类”选项。或者让他们看看其他成千上万个“如何解析JSON”问题中的一个。啊,太棒了!那么,如何才能获得这样的价值呢
testData.testvalues.name
?@John几乎,
testData.testvalues[index].name因为它是
测试值
如果类型为
列表
@styx No,则它是一个数组。
Rootobject testData = JsonConvert.DeserializeObject<Rootobject>(json);