最近有个新需求,返回值是多层嵌套的:
{"logisticproviderid":"JNT",
"responseitems":
[{"billcode":"510049248553,"
,"mailno":"",
"reason":"",
"sortingcode":"",
"success":"true",
"txlogisticid":""
}]
}
我要取的值是success参数的值,开始以为取到responseitems就可以了,所以尝试了很多种方法,
后来发现还是得重新定义一个List,先定义封装一个返回值的类,包含responseitems,再将responseitems再次定义封装成一个类,如下:
/// <summary>
/// 应答参数列表
/// </summary>
private class Results
{
public string logisticproviderid { get; set; }
public List<Responseitem> responseitems { get; set; }
}
private class Responseitem
{
/// <summary>
/// 返回编码
/// </summary>
public string code { get; set; }
/// <summary>
/// 是否成功
/// </summary>
public string success { get; set; }
public string reason { get; set; }
public string billcode { get; set; }
}
取值直接再List集合中取值:
先反序列化:
var les = JsonHelper.JSONToObject<Results>(result);
再取值:
var su=les.responseitems[1].success.ToLower();
实测成功接收到返回值。