使用匹配的花括号拆分字符串的最佳方法
我正在使用C#,我正在使用JSON.Net将json字符串解析为C#对象。 我的部分问题是我得到了一些像这样的字符串:
{"name": "John"}{"name": "Joe"}
当我尝试使用JsonConvert.DeserializeObject
反序列化时,它会抛出exception。
我想知道将这个更大的字符串拆分成更小的json字符串的最佳方法是什么。
我正在考虑通过字符串和匹配“0级”的花括号。 这看起来是个好主意吗? 或者有更好的方法来做到这一点?
您可以使用将SupportMultipleContent
标志设置为true的JsonTextReader
来读取此非标准JSON。 假设你有一个看起来像这样的类:
class Person { public string Name { get; set; } }
您可以像这样反序列化JSON对象:
string json = @"{""name"": ""John""}{""name"": ""Joe""}"; using (StringReader sr = new StringReader(json)) using (JsonTextReader reader = new JsonTextReader(sr)) { reader.SupportMultipleContent = true; var serializer = new JsonSerializer(); while (reader.Read()) { if (reader.TokenType == JsonToken.StartObject) { Person p = serializer.Deserialize(reader); Console.WriteLine(p.Name); } } }
小提琴: https : //dotnetfiddle.net/1lTU2v
我发现最好的方法是将您的字符串转换为数组结构:
string json = "{"name": "John"}{"name": "Joe"}"; json = json.Insert(json.Length, "]").Insert(0, "[").Replace("}{", "},{"); // json now is [{"name": "John"},{"name": "Joe"}] List result = Newtonsoft.Json.JsonConvert.DeserializeObject>(json);
假设您的class级名称是Person
:
上述就是C#学习教程:使用匹配的花括号拆分字符串的最佳方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public class Person { public string Name { set; get; } }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/955491.html