我是刚第一次写DeserializeObject,以下问题困扰了一天,以下是我调用接口返回时的处理方式,在将json 转换为Model类的时候,一直转为null ,请问时什么问题,JSON格式不正确吗,哪位能解答一下,谢谢了
var response = await _httpClient.GetAsync(requestUrl).ConfigureAwait(false);
string result = await response.Content.ReadAsStringAsync();
string decodeResult = UnicodeToString(result);
HttpResponseModel<T> responseModel = new HttpResponseModel<T>(response.StatusCode, decodeResult);
if (response.StatusCode == HttpStatusCode.OK)
{
responseModel.ResponseModel = JsonConvert.DeserializeObject<T>(decodeResult);
}
ResponseModel.CS
public class TestCustomResponseModel
{
public string ErrorCode { get; set; }
public string ErrorMsg { get; set; }
public TestCustomModel[] List { get; set; }
public List<TestCustomModel> List1 { get; set; }
}
public class TestCustomModel
{
public string ShootShopId { get; set; }
public string ShootDate { get; set; }
public int TQty { get; set; }
public int ZQty { get; set; }
}
JSON
{"ErrorCode":0,"ErrorMsg":"","Data":"[{"ShootShopId":"000010","ShootDate":20220604,"bjCanShootQty":25.000000,"zaCanShootQty":-24.000000},{"ShootShopId":"000010","ShootDate":20220605,"bjCanShootQty":24.000000,"zaCanShootQty":-23.000000},{"ShootShopId":"000010","ShootDate":20220606,"bjCanShootQty":24.000000,"zaCanShootQty":-21.000000},{"ShootShopId":"000010","ShootDate":20220607,"bjCanShootQty":24.000000,"zaCanShootQty":-16.000000},{"ShootShopId":"000010","ShootDate":20220608,"bjCanShootQty":26.000000,"zaCanShootQty":-19.000000},{"ShootShopId":"000010","ShootDate":20220609,"bjCanShootQty":24.000000,"zaCanShootQty":-21.000000},{"ShootShopId":"000010","ShootDate":20220610,"bjCanShootQty":24.000000,"zaCanShootQty":-20.000000},{"ShootShopId":"000010","ShootDate":20220611,"bjCanShootQty":24.000000,"zaCanShootQty":-20.000000},{"ShootShopId":"000010","ShootDate":20220612,"bjCanShootQty":24.000000,"zaCanShootQty":-24.000000},{"ShootShopId":"000010","ShootDate":20220613,"bjCanShootQty":25.000000,"zaCanShootQty":-18.000000}]"}
你给出的json文本格式有误
{
"ErrorCode": 0,
"ErrorMsg": "",
"Data": [{
"ShootShopId": "000010",
"ShootDate": 20220604,
"bjCanShootQty": 25.000000,
"zaCanShootQty": -24.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220605,
"bjCanShootQty": 24.000000,
"zaCanShootQty": -23.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220606,
"bjCanShootQty": 24.000000,
"zaCanShootQty": -21.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220607,
"bjCanShootQty": 24.000000,
"zaCanShootQty": -16.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220608,
"bjCanShootQty": 26.000000,
"zaCanShootQty": -19.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220609,
"bjCanShootQty": 24.000000,
"zaCanShootQty": -21.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220610,
"bjCanShootQty": 24.000000,
"zaCanShootQty": -20.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220611,
"bjCanShootQty": 24.000000,
"zaCanShootQty": -20.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220612,
"bjCanShootQty": 24.000000,
"zaCanShootQty": -24.000000
}, {
"ShootShopId": "000010",
"ShootDate": 20220613,
"bjCanShootQty": 25.000000,
"zaCanShootQty": -18.000000
}]
}
对应的C#类
// Root myDeserializedClass = JsonSerializer.Deserialize<Root>(myJsonResponse);
public class Datum
{
[JsonPropertyName("ShootShopId")]
public string ShootShopId { get; set; }
[JsonPropertyName("ShootDate")]
public int ShootDate { get; set; }
[JsonPropertyName("bjCanShootQty")]
public double BjCanShootQty { get; set; }
[JsonPropertyName("zaCanShootQty")]
public double ZaCanShootQty { get; set; }
}
public class Root
{
[JsonPropertyName("ErrorCode")]
public int ErrorCode { get; set; }
[JsonPropertyName("ErrorMsg")]
public string ErrorMsg { get; set; }
[JsonPropertyName("Data")]
public List<Datum> Data { get; set; }
}
我现在的需求就是能对json中的data进行遍历,进行业务逻辑处理,请问还有什么实现方式吗