API反序列化时触发JsonSerializationException:null转换为System.Double类型失败的解决求助
API反序列化时触发JsonSerializationException:null转换为System.Double类型失败的解决求助
大家好,我遇到了一个JSON反序列化的问题,希望能得到各位的帮助。虽然可能标题表述得不是很准确,但还是麻烦大家看看我的情况:
我正在调用一个API,但在反序列化返回结果时,总是触发JsonSerializationException: Error converting value {null} to type 'System.Double'的错误。错误出现在下面代码中标注为Error Line的那一行:
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(); // Error Line var response = JsonConvert.DeserializeObject<GetSalaryHistoryResponse>(readTask.Result); return response; } }
在API调用过程中,我注意到返回的JSON里有两个字段是null值,应该就是这两个字段触发了转换错误。
我看到有提示说可以用下面这段代码来处理,但我把attributesObject替换成自己类的属性后还是没用,实在搞不清楚该怎么正确应用这个设置。我现在的需求很简单,就是能成功完成反序列化,把结果返回出去供其他地方使用,有没有人能帮我解决这个问题?
var json = JsonConvert.SerializeObject( attributesObject, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
备注:内容来源于stack exchange,提问作者Win Sunday
相关产品推荐
相关产品推荐

