gpt4 book ai didi

json - 配置 ServiceStack.Text 以抛出无效的 JSON

转载 作者:行者123 更新时间:2023-12-01 04:06:31 25 4
gpt4 key购买 nike

尝试反序列化无效的 JSON 时是否可以使 ServiceStack.Text 库抛出。默认情况下,它看起来好像只是忽略了无效的 JSON,因此结果对象包含空值。

当我尝试反序列化此 json 时(在 MongoConnectionString 之后缺少“”)

{
"MongoDb": {
"MongoConnectionString:"mongodb://localhost:27017/x",
"MongoDatabase":"x",
"MongoSafeModeEnabled":true,
"MongoSafeModeFSync":true,
"MongoSafeModeWriteReplicationCount":
"MongoSafeModeWriteTimeout":"00:00:00"
},

通过这样做: JsonSerializer.DeserializeFromString(json);
在哪里
public class Configuration {
public class MongoDbSettings
{
public string MongoConnectionString {get;set;}
public string MongoDatabase {get;set;}
public bool MongoSafeModeEnabled {get;set;}
public bool MongoSafeModeFSync {get;set;}
public int MongoSafeModeWriteReplicationCount {get;set;}
public TimeSpan MongoSafeModeWriteTimeout {get;set;}
}
}

我得到一个配置对象,其中 MongoDbSettings 为空。在这种情况下,我更愿意获得异常(exception)。这可能吗?

最佳答案

目前,ServiceStack 序列化器针对弹性进行了优化,即尽可能无错误地反序列化。

我建议在序列化后添加一些您自己的验证检查,以确定哪些字段没有正确反序列化。

您还可以向 ServiceStack.Text 提交拉取请求。支持选择加入标志(即在 JsConfig 上)以更改行为以引发异常的项目。

关于json - 配置 ServiceStack.Text 以抛出无效的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972556/

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