gpt4 book ai didi

c# - Newtonsoft 对象序列化为字符串。预期 JObject 实例

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:30 33 4
gpt4 key购买 nike

您好,所以我正在尝试解析此 JSON 行,但我在文件中得到了一些类似的其他行,这就是为什么我想自动执行此操作,以便我可以删除无效行以使文件成为有效的 JSON 以供阅读,问题是JSON 在 1 行中包含多个 JSON

例子:

{"item":"value"}{"anotheritem":"value"}

有没有办法去掉

{"anotheritem":"value"}

因此它变成了一个有效的可读的 JSON 以开始解析文件

我尝试使用 StreamReader,因为在一个文件中我有多个包含这些无效 JSON 的文件

所以我让它能够检测到无效的 JSON 但由于某种原因我无法让它读取 JSON 所以我可以使用 .remove 删除无效行

using (StreamReader r = new StreamReader(itemDir))
{
string json = r.ReadToEnd();
if (json.Contains("anotheritem"))
{
JObject NoGood = JObject.FromObject(json);
MessageBox.Show(NoGood.ToString());
}
}

错误:

Object serialized to String. JObject instance expected.

感谢大家的宝贵时间和帮助。

最佳答案

如果每个对象并排没有空格或任何其他字符,您可以将字符串转换为 json 数组。

string value = "{\"item\":\"value\"}{\"anotheritem\":\"value\"}";
string arrayValue = "[" + value.Replace("}{", "},{") + "]";
var array = JArray.Parse(arrayValue);
var goopArray = array.OfType<JObject>().Where(o => o.Property("anotheritem") == null);

编辑 :看我的第二个答案。更强大的解决方案。更现代。并支持 dotnet core 内置的 json 序列化程序。

关于c# - Newtonsoft 对象序列化为字符串。预期 JObject 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38654239/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com