- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Detect if deserialized object is missing a field with the JsonConvert class in Json.NET
(5 个回答)
3年前关闭。
如果我尝试反序列化以下 json
{ "error": "Invalid order request" }
var response = JsonConvert.DeserializeObject<OrderResponse>(errorJson);
response.orderNumber == 0; // true
response.resultingOrders == null; // true
public class OrderResponse
{
public long orderNumber;
public List<Order> resultingOrders;
[JsonConstructor]
public OrderResponse(long orderNumber, List<Order> resultingOrders)
{
this.orderNumber = orderNumber;
this.resultingOrders = resultingOrders;
}
}
public class Order
{
public long orderId
public decimal amount;
public string type;
[JsonConstructor]
public Order(long orderId, decimal amount, string type)
{
this.orderId = orderId;
this.amount = amount;
this.type; = type;
}
}
最佳答案
要抛出异常,您必须更改默认的序列化设置。默认情况下,当类中缺少 Json 的成员时,Json.NET 会忽略:
MissingMemberHandling
– By default this property is set to Ignore which means that if the Json has a property that doesn’t exist on the target object it just gets ignored. Setting this to Error will cause an exception to be thrown if the json contains members that don’t exist on the target object type.
JsonSerializerSettings serializerSettings = new JsonSerializerSettings();
serializerSettings.MissingMemberHandling = MissingMemberHandling.Error;
var response = JsonConvert.DeserializeObject<OrderResponse>(errorJson, serializerSettings);
关于c# - DeserializeObject<T> 返回具有空/默认值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51343740/
这个问题已经有答案了: JsonConvert.DeserializeObject could not convert string to DateTime when using non-us dat
我有一个如下所示的 JSON 响应 { "msg": "1", "code": "2", "data": [ { "a": "3",
我想在我的应用程序加载时使用 JSON.Net 来处理配置文件的解析。将所有 KVP 保持在同一范围内绝对没问题。但是,我想将其分解为子类别,例如 Settings.WebServer、Setting
这个问题在这里已经有了答案: Deserializing nested JSON structure to a flattened class with Json.NET using annotat
我知道有很多关于 JSON 的问题遍布整个互联网和 StackOverflow。但是我无法让我的 JSON 正常工作,所以我希望我能在这里得到一些帮助。[使用 C#、Visual Studio] 我有
所有这些都来自https://github.com/JamesNK/Newtonsoft.Json/issues/469 发在这里是因为我先是在SO上看,没有看到任何东西,所以我在项目的GitHub页
我收到一个无效的强制转换异常,表明指定的强制转换无效。在这条线上: RootObject mountain = JsonConvert.DeserializeObject(json1); 来自docu
我有以下来自 Web 服务的 JSON 对象 { "room":{ "name":"Thunderdome", "created_at":"2012/04/15 00:3
我想将我现有的枚举属性标记为过时并添加新的以实现相同的功能。因此,我的项目中有两个枚举(新的和标记过时的)可用。 在使用 jsonconvert.deserializeobject 函数序列化此枚举值
我从网络请求中获取一个 JSON 编码的字符串。 字符串像这样返回 "{\"key\":\"value\"}" 当我尝试使用来自 JsonConvert 的 DeserializeObject 解析它
这个问题在这里已经有了答案: Json.NET case-sensitive deserialization (1 个回答) 关闭 6 年前。 我正在尝试将字符串内容反序列化为对象,但我希望内容区分
我有一些继承,需要自定义 JsonConverter 进行反序列化。我现在使用一种非常直接的方法,根据某些属性的存在来确定类型。 重要说明:在我的实际代码中,我无法触及DeserializeObjec
我有这样的 json 字符串输出: 字符串 apiResult = { "error":[], "result":{ "RARAGA":{ "a":["4",
这个问题在这里已经有了答案: Detect if deserialized object is missing a field with the JsonConvert class in Json.N
我有一个来自网络服务的结果,字符串结果是: {"status":"success","data":{"address":"aa@aa.aa","unconfirmed":[{"tx":"cb2f252
Newtonsoft.Json.DeserializeObject 会抛出哪些异常?我想处理它们。 http://james.newtonking.com/json/help/?topic=html/
我有以下类定义: public class Tag { public Guid? TagId { get; set; } public string TagText { get; se
我正在编写一个解决方案,其中包含一个 ASP.NET Web API (.NET 4.6.2)(又名后端)、一个 Web API 客户端实现 PCL(即中间件)和 Xamarin.Forms 项目(即
我有这个对象 public class ConversationAPI { [JsonProperty(PropertyName = "lU")] public DateTime La
在 Xamarin 项目中,我有包含以下代码的 PCL 库。 我们定义一个 ConcurrentQueue .消费者在对象初始化时为此 Task已附上: _syncConsumer = new Tas
我是一名优秀的程序员,十分优秀!