![](/img/trans.png)
[英]json newtonsoft : Deserialize Object containing a list of string
[英]Newtonsoft JSON schema compare containing object type
我有一个如下所述的模型。
public class QueryValueDataModel
{
public object Value { get; set; }
public QueryValueType ValueType { get; set; }
}
我有QueryValueDataModel类型的JSON序列化:
{
"Value": 100,
"ValueType": 0
}
当我将JSON对象的架构与QueryValueDataModel架构进行比较时
var obj = JToken.Load(reader);
IList<ValidationError> errorMessages = new List<ValidationError>();
SchemaExtensions.IsValid(obj, schema, out errorMessages)
我收到一个错误,架构不匹配:
Invalid type. Expected Object, Null but got Integer
如何处理这种情况并使模式比较起作用? 或者,是否有一些解决方法?
您可以使用JSchemaGenerator从任何对象创建JSchema并将其与JObject.IsValid()方法进行比较
JSchemaGenerator generator = new JSchemaGenerator();
JSchema schema = generator.Generate(typeof(QueryValueDataModel));
JObject o = JObject.Parse(jsonstr);
if(o.IsValid(schema))
{
QueryValueDataModel deserialized = o.ToObject(typeof(QueryValueDataModel));
}
else
{
throw new Exception("schema dosn't match");
}
请注意! JSchemaGenerator已移至Newtonsoft.Json.Schema nuget包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.