用Json.Net丢弃json对象后的垃圾字符 [英] Discarding garbage characters after json object with Json.Net

查看:67
本文介绍了用Json.Net丢弃json对象后的垃圾字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须使用一个由愚蠢的猴子实现的所谓的Web服务,该猴子在正确的Json响应后会返回一些垃圾. 像这样:

I have to consume a so called web service implemented by a dumb monkey which is returning some garbage after the proper Json response. Something like this:

{
  "Property1": 1,
  "Property2": 2,
  "Property3": 3
}<?xml version='1.0' ?>Maybe some other gibberish nonsense I wish to discard.

现在,我可以搜索"<?xml"并拆分,但是我想知道是否可以使用流读取器或其他方法读取直到结束},然后丢弃其余的内容

Now, I could just search for "<?xml" and split, but I was wondering if I can use a stream reader or something to read up to the closing } and then discard the rest.

我正在使用C#和Json.Net.

I'm using C# and Json.Net.

推荐答案

您还可以设置

You can also set JsonSerializerSettings.CheckAdditionalContent = false to tell the serializer to ignore any content after the end of the deserialized JSON object:

var result = JsonConvert.DeserializeObject<Dictionary<string, long>>(json, new JsonSerializerSettings { CheckAdditionalContent = false })

奇怪的是,尽管默认值似乎已经是false,但仍然有必要明确地执行此操作,因为

Oddly enough it is necessary to do this explicitly despite the fact that the default value seems to be false already, since the underlying field is nullable.

这篇关于用Json.Net丢弃json对象后的垃圾字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆