我正在嘗試從 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;
}
這是我想得到的輸出
{
"USA": 1,
"Microsoft": 1,
"sees": 1
}
這是我得到的輸出
{
\"USA\": 1,
\"Microsoft\": 1,
\"sees\": 1
}
問題是我如何擺脫 \ ?我正在使用 Newtonsoft.Json 庫來格式化 json 檔案。
uj5u.com熱心網友回復:
您將其序列化兩次:
string json = JsonConvert.SerializeObject(aux);
using (StreamWriter sw = File.CreateText(@".\..\..\..\OutputData\" art.FileNames[i] ".json"))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(sw, json);
}
您已經從第一行獲得了 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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/329498.html
