我有以下json:
{
"value": [
{
"id": "/subscriptions/5a9c0639-4045-4c23-8418-fc091e8d1e31/resourceGroups/citrix-xd-0ec69105-c451-4676-8723-97932bf4d94a-ayjzs",
"name": "citrix-xd-0ec69105-c451-4676-8723-97932bf4d94a-ayjzs",
"location": "australiaeast",
"tags": {
"CitrixResource": "Internal",
"CitrixSchemaVersion": "2.0",
"CitrixProvisioningSchemeId": "0ec69105-c451-4676-8723-97932bf4d94a",
"BillTo": "O1001396_8796-SS-Citrix",
"Reference Name": "Citrix POC"
},
"properties": {
"provisioningState": "Succeeded"
}
}
]
注意:上面的json只是一个大json数组的一部分
我想阅读具体的标签'节点并比较关键名称'例如CitrixResource
到一个字符串并说它是否不相同然后失败。
JObject jsonParsed = JObject.Parse(result);
result = jsonParsed["value"].ToString()
var Response = JsonConvert.DeserializeObject<List<AzureResponse>>(result);
foreach (var AzureResponse in Response)
{
//do something
//and say
{
if (Tags.citrixResource.Propertyname = "name")
{
then pass;
}
}
}
答案 0 :(得分:0)
反序列化json <canvas id="FixedBody" width="300" height="200"/>
result
将 var jsonParsed = JsonConvert.DeserializeObject<dynamic>(result);
内的属性value
转换为json
List<AzureResponse>
使用 //if the json is an object with `value` as property inside it
var result = jsonParsed["value"].ToString();
//if the `value` is an array of format `List<AzureResponse>`
List<AzureResponse> AzureResponseList= new List<AzureResponse>();
JsonConvert.PopulateObject(result, AzureResponseList);
循环浏览列表
Linq queries
或使用 //then using `linq` we could query according to our needs
var tag=AzureResponseList.Where(x=>x.tags['CitrixResource']=='name').FirstOrDefault();
循环浏览列表
foreach
如果我们不想转换为任何模型,我们可以直接使用//example with foreach
foreach(var response in AzureResponseList){
if(response.tags['CitrixResource']=='name'){
//do something
}
}
动态对象
jsonParsed