Kooboo/Json

字段类型不匹配时会报错?Newtownsoft 的不会

Closed this issue · 4 comments

字段类型不匹配时会报错?Newtownsoft 的不会
1996v commented

当字段类型不匹配时当然会报错,要么json文本有错误,要么对象的字段类型定义了错误。
所以当发生冲突的时候,你要么修改代码,要么制定一个这样发生冲突时的解决规则。
而这个规则,在KoobooJson中,叫做[值格式化特性]

`
class A
{
[StrValueFormat]
public string a;
}
class StrValueFormat:ValueFormatAttribute
{
public override string WriteValueFormat(object value,Type type, JsonSerializerHandler handler, out bool isValueFormat)
{
...
}

public override object ReadValueFormat(string value,Type type, JsonDeserializeHandler handler, out bool isValueFormat)
{
    if(type==typeof(string))
   {  
          isValueFormat=false;
          return null;
   }
  else if(type==typeof(int))
  {
           isValueFormat=true;
           return int.parse(value);
  }
 throw new Exception("不支持的类型")
}

}`

要改的类定义和属性比较多。所以呢换了个

1996v commented

你可以使用 JsonDeserializeOption.GlobalValueFormat ,这是全局的值格式化特性

好的,感谢,抽空试试看