我有一个嵌套字典,例如我想写入 json 的 Dictionary1
我尝试将这些数据写入 JSON,但是只有来自 Dictionary1 的 double 出现在 json 中。
public void Write_JSON()
{
dictionary_JSON.Clear();
Dictionary<string, string> tempdic = new Dictionary<string, string>();
tempdic.Clear();
foreach (double d in available_doubles_values)
{
foreach (TextBox t in panel1.Controls.OfType<TextBox>())
{
tempdic.Add(t.Name, t.Text);
}
dictionary_JSON.Add(d, tempdic);
tempdic.Clear();
}
string json = JsonConvert.SerializeObject(dictionary_JSON, Formatting.Indented);
File.WriteAllText(@"limits.json", json);
}
然而在 json 中显示的是:
"double1": {},
"double2": {},
"double3": {},
dictionary2 tempdic 没有被写入。我错过了什么?
答案 0 :(得分:2)
当您执行 Clear 时,它会删除字典中的元素,这就是为什么您在 json 中没有任何内容的原因。每次输入第一个 for 时,您都需要重新分配一个新的 Dictionary。 我还用 dictionary_JSON 替换了 test_limits_json 因为这可能是重点。 试试这个:
public void Write_JSON()
{
dictionary_JSON.Clear();
foreach (double d in available_doubles_values)
{
Dictionary<string, string> tempdic = new Dictionary<string, string>();
foreach (TextBox t in panel1.Controls.OfType<TextBox>())
{
tempdic.Add(t.Name, t.Text);
}
dictionary_JSON.Add(d, tempdic);
}
string json = JsonConvert.SerializeObject(dictionary_JSON, Formatting.Indented);
File.WriteAllText(@"limits.json", json);
}