如何处理“System.InvalidCastException:反序列化 API 调用的结果时

问题描述 投票:0回答:0

我不确定我是否正确地构筑了标题,但我希望无论如何都能得到一些帮助。我正在尝试使用 api,但我不断收到“JsonSerializationException:将值 {null} 转换为类型‘System.Double’时出错”。当我尝试在底部代码中标记为 Error Line 的行反序列化时,就会发生这种情况 // var response = JsonConvert.DeserializeObject

在 API 调用期间,我注意到有两个字段具有空值,这可能是触发错误的原因

using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx);

            client.DefaultRequestHeaders.Add("API_KEY", "xxxxxxxxxxxxxxxxxxx");
            client.DefaultRequestHeaders.Add("REQUEST_ID", "xxxxxxxx");
            client.DefaultRequestHeaders.Add("MERCHANT_ID", "xxxxxxxx");
            client.DefaultRequestHeaders.TryAddWithoutValidation("AUTHORIZATION", "ConsumerKey=Q1dHREVNTzEyMzR8Q1dHREVNTw==,ConsumerToken=c5e8db0cbca54593e54f6702778d1ea129463d5555166cd1d0c46416495df82483a08c30fdd1e9fa39ceeea9bc6d8da9ba892ff3c3f326d537bc06bf8ef3ece7");

           
            string vv = request.ToJson();
            var content = new StringContent(request.ToJson(), System.Text.Encoding.UTF8, "application/json");
            var responseTask = client.PostAsync("provideCustomerDetails", content);
            responseTask.Wait();
            var result = responseTask.Result;
            if (result.IsSuccessStatusCode)
            {
                var readTask = result.Content.ReadAsStringAsync();
                readTask.Wait();
                var a = readTask.Result.ToString();

**错误行:> ** var response = JsonConvert.DeserializeObject(readTask.Result);

返回响应; }

我看到了使用下面代码片段的提示,我也用类属性替换了“attributesObject”,但仍然出现错误。我似乎不知道该怎么做。我只想能够将反序列化的值作为返回值发送并在其他地方使用它,有人能帮忙吗?

var json = JsonConvert.SerializeObject(attributesObject,
格式化。无, 新的 JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });

c# api deserialization httpclient nullreferenceexception
© www.soinside.com 2019 - 2024. All rights reserved.