我有一个以 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/