gpt4 book ai didi

c# - Newtonsoft JSON 模式忽略反序列化验证

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:22 24 4
gpt4 key购买 nike

我有以下 JSON 和类,

{ “编号”:123, "名字": "名字", "姓氏": "lName"

public class Student
{
public int Id { get; set; }

[StringLength(4)]
public string FirstName { get; set; }

[StringLength(4)]
public string LastName { get; set; }
}

我正在尝试反序列化以上 JSON 以创建学生类的实例。

var body = //above json as string;

Student model = null;

JSchemaGenerator generator = new JSchemaGenerator();
JSchema schema = generator.Generate(typeof(Student));

using (JsonTextReader reader = new JsonTextReader(new StringReader(body)))
{
using (JSchemaValidatingReader validatingReader = new JSchemaValidatingReader(reader) { Schema = schema })
{
JsonSerializer serializer = new JsonSerializer();
model = serializer.Deserialize(validatingReader, typeof(Student));
}
}

这将引发字符串长度验证异常,是否有任何方法可以通过忽略所有数据注释验证来反序列化 JSON?

最佳答案

您可以使用以下代码反序列化您的数据。由于抛出错误,您在序列化之前进行验证。

 var body ="{\"Id\":123,\"FirstName\":\"fNamesdcsdc\",\"LastName\":\"lName\"}";
using (JsonTextReader reader = new JsonTextReader(new StringReader(body)))
{
JsonSerializer serializer = new JsonSerializer();
var model = serializer.Deserialize(reader, typeof(Student));
}

enter image description here

关于c# - Newtonsoft JSON 模式忽略反序列化验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39660684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com