gpt4 book ai didi

C# 将 JSON 写入不带反斜杠的文件

转载 作者:行者123 更新时间:2023-11-30 21:27:10 28 4
gpt4 key购买 nike

我正在开发一个将特定数据写入 JSON 文件的控制台应用程序。问题是 VS 用来转义字符串中字符的反斜杠正在写入文件。我确实在 stackoverflow 上找到了类似的问题,但是那个人序列化了两次导致了这个问题。我不认为我是这种情况(除非我遗漏了什么),这就是为什么我在这里创建了一个单独的问题。

我已经尝试过 string.Replace("\","") 但由于反斜杠实际上并不存在(因为它只是 VS 转义双引号),这没有帮助。

我有一个名为 listItem 的类,它有一些属性;

class ListItem
{
public string title;
public string textline;
public string docuType;
}

我有一个 SPList 类,其中包含这些 ListItem 的列表;

class SPList
{
public string listTitle;
public List<ListItem> listItems;
}

我有一个使用 2 个列表写入 JSON 文件的示例;

[
{
"listTitle": "\"Another List\"",
"listItems": [
{
"title": "\"Here\"",
"textline": "\"Another test value\"",
"docuType": null
},
{
"title": "\"Look at this\"",
"textline": "\"It's another value for testing\"",
"docuType": null
}
]
},
{
"listTitle": "\"Sample List\"",
"listItems": [
{
"title": "\"Sample value\"",
"textline": null,
"docuType": "\"Analyse\""
},
{
"title": "\"Sample value 2\"",
"textline": null,
"docuType": "\"IetsAnders\""
},
{
"title": "\"SampleValue3!\"",
"textline": null,
"docuType": "\"Offerte\""
}
]
}
]

最后,我用来实现这一目标的代码;

Task <List<string>>listIDs = GetListIDs();
listIDs.Wait();
foreach (string id in listIDs.Result)
{
Task<string> lijstTitel = GetListTitle(id);
lijstTitel.Wait();
Task<List<string>> listitemIDs = GetItemIDs(id);
listitemIDs.Wait();
// Write all the items here
foreach (string itemID in listitemIDs.Result)
{

Task<ListItem> itempje = GetItem(itemID, id);
itempje.Wait();
listItems.Add(itempje.Result);
}

list.Add( new SPList{
listItems = listItems,
listTitle = lijstTitel.Result
});
listItems = new List<ListItem>();
}
string json = JsonConvert.SerializeObject(list, Formatting.Indented);

System.IO.File.WriteAllText(path, json);

在我发现的类似问题的另一个例子中,这个人两次序列化他的 JSON 对象,“导致这个问题发生”。因为我认为我只对它进行了一次序列化,它是否与我正在使用 Tasks 这一事实有关,还是完全是其他原因?

最佳答案

问题不在于反斜杠 \,而是引号 "。看起来您正在序列化的数据已被引用。

如果您可以删除反斜杠,您仍然会在输出 "" 中使用双引号结束。

关于C# 将 JSON 写入不带反斜杠的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58214285/

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