Gab*_*537 1 c# json dictionary
我试图从 C# 将字典写入 json 文件,但输出错误,这是我的方法
public static List<Dictionary<string, int>> CreateGlobalVectorAndRareVectors(List<Article> articleList)
{
List<Dictionary<string, int>> vectoriRari = new List<Dictionary<string, int>>();
int i = 0;
foreach (Article art in articleList)
{
Dictionary<string, int> aux = new Dictionary<string, int>();
string[] title = art.Title1.Split(delimiterChars);
string[] text = art.Text1.Split(delimiterChars);
string[] completeText = title.Concat(text).ToArray();
completeText = completeText.Where(x => !string.IsNullOrEmpty(x)).ToArray();
foreach (var word in completeText)
{
if (!aux.ContainsKey(word))
{
aux.Add(word, 1);
}
else
{
aux.TryGetValue(word, out int tempValue);
aux[word] = tempValue + 1;
}
}
string json = JsonConvert.SerializeObject(aux);
using (StreamWriter sw = File.CreateText(@".\..\..\..\OutputData\" + art.FileNames[i] + ".json"))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(sw, json);
}
i++;
vectoriRari.Add(aux);
}
return vectoriRari;
}
Run Code Online (Sandbox Code Playgroud)
这是我想要得到的输出
{
"USA": 1,
"Microsoft": 1,
"sees": 1
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出
{
\"USA\": 1,
\"Microsoft\": 1,
\"sees\": 1
}
Run Code Online (Sandbox Code Playgroud)
问题是如何摆脱 \ ?我正在使用 Newtonsoft.Json 库来格式化 json 文件。
您将其序列化两次:
string json = JsonConvert.SerializeObject(aux);
using (StreamWriter sw = File.CreateText(@".\..\..\..\OutputData\" + art.FileNames[i] + ".json"))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(sw, json);
}
Run Code Online (Sandbox Code Playgroud)
您已经从第一行获取了 JSON - 然后在稍后的调用中将该 JSON 编码为 JSON 字符串Serialize。
你可以让这变得更简单:
string json = JsonConvert.SerializeObject(aux);
// TODO: Consider using Path.Combine instead
string path = @"..\..\..\OutputData\" + art.FileNames[i] + ".json";
File.WriteAllText(path, json);
Run Code Online (Sandbox Code Playgroud)