C# 获取嵌套的JSON值
我向API发送了一个请求,并得到了这个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",
{{
"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);