c# - 使用 Newtonsoft.Json 检测 json 对象的结尾

标签 c# json json.net

我有一个以 JSON 对象开头的字符串,但在该字符串结束后继续(类似于 {"a":"fdfsd","b":5}ghresd) 。之后的文本可以包含任何字符,并且 JSON 可以是 JSON 允许的任何字符。

我想反序列化 JSON 对象并知道它的结束位置,因为我想随后处理字符串的其余部分,我该怎么做,最好使用 Newtonsoft.Json

最佳答案

您可以使用SupportMultipleContent属性,例如:

var json = "{\"a\":\"fdfsd\",\"b\":5}ghresd";

var reader = new JsonTextReader(new StringReader(json));
reader.SupportMultipleContent = true;

//Read the first JSON fragment
reader.Read();

var serializer = new JsonSerializer();
var result = serializer.Deserialize(reader);

//Or if you have a class to deserialise into:
//var result = serializer.Deserialize<YourClassHere>(reader);

//Line position is where the reader got up to in the JSON string
var extraData = json.Substring(reader.LinePosition);

关于c# - 使用 Newtonsoft.Json 检测 json 对象的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55503289/

相关文章:

c# - 是否有一个库可以在 Windows Mobile 上用 C# 读取 JSON?

c# - 在 Unity 上使用 .NET 自己的 httpClient 类

c# - 通过测验了解 C# 中的嵌套泛型类

javascript - 如何从 Rails @variable 访问 JSON?

jquery - 页面加载时在 MagicSuggest 中设置 JSON 值默认值

c# - 解析 Postman 中的日期对象以转换为 C# DateTime

c# - Newtonsoft JSON.NET 解析为自定义键/值对对象数组

c# - 从 WPF 客户端访问安全的 Web API

c# - Azure队列存储 Visual Studio 本地主机从QueueClient发送到毒队列的所有队列消息

java - Jackson JavaTimeModule 用于 Joda 时间?