Mar*_*cus 0 c# serialization json converter json.net
我有这个方法:
public Specification RequestUnit(string jsonString)
{
var obj = JsonConvert.DeserializeObject<SkuModel>(jsonString.Replace("on", "1"));
return inteService.RequestSpecification(obj);
}
Run Code Online (Sandbox Code Playgroud)
而且,这是我的JSON,正是jsonString中包含的内容
{
"RequestStatus":"on",
"IsActive":"on",
"Code":"g87",
"Name":"fg8907",
"UnitDescription":"8gf"
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,由于某些未知原因,obj变量只是部分设置.除UnitDescription(保持为null)之外的所有参数都已成功反序列化.我正在使用Newtonsoft.Json JsonConvert类.
任何人?
这个问题的原因是这样的:
jsonString.Replace("on", "1")
Run Code Online (Sandbox Code Playgroud)
Replace()方法将取代每个"开"的出现.所以,你的实际JSON将是这样的:
{
"RequestStatus":"1",
"IsActive":"1",
"Code":"g87",
"Name":"fg8907",
"UnitDescripti1":"8gf"
}
Run Code Online (Sandbox Code Playgroud)
注意UnitDescripti1名称.
解决方法将使用
jsonString.Replace("\"on\"", "\"1\"")
Run Code Online (Sandbox Code Playgroud)
但最好配置反序列化过程或使用自定义JsonConverter,因为您可以再次遇到相同的问题.