1、result =JObject.Parse(resposePatBaseInfo).GetValue("data").ToObject<SignInfo>()
用的是时候报错。经过分析跟resposePatBaseInfo有关。
{"success":true,"errorDetail":null,"data":"{\"patientId\":1888,\"patientName\":\"xxx\",\"genderName\":\"男\",\"birthDate\":\"1994-10-22T00:00:00\",\"patientAge\":\"27岁\",\"cardNo\":\"00210002\",\"infusionTypeName\":\"\",\"seqNo\":1,\"infusionEncounterNo\":\"\"}"}
JObject.Parse(resposePatBaseInfo).GetValue("data")解析后是JValue。ToObject<SignInfo>()报错
2、修改报文为可以正常解析
{
"success":true,
"errorDetail":null,
"data":{"patientId":1888,"patientName":"xxx","genderName":"男","birthDate":"1994-10-22T00:00:00","patientAge":"27岁","cardNo":"00210002","infusionTypeName":"","seqNo":1,"infusionEncounterNo":""}
}
3、如果不修改报文。可以吧JValue转成字符串通过JsonConvert.DeserializeObject实现
result = JsonConvert.DeserializeObject<SignInfo>(JObject.Parse(resposePatBaseInfo).GetValue("data").ToString());