【发布时间】:2019-04-19 14:22:03
【问题描述】:
我正在尝试将对象序列化为 JSON 文件,但问题是我想给 JSON 对象一个可变的内容名称。
我想我可以做这样的事情:
string codfis = "Example1";
var jsonCF = new {
codfis = new { // codfis is the name of the variable as you can see
Cognome = vcgm,
Nome = vnm,
Sesso = ss,
LuogoDiNascita = ldn,
Provincia = pr,
DataDiNascita = ddn
}
};
using (StreamWriter file = File.CreateText("CodFisCalcolati.json")) {
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(file, jsonCF);
}
但显然这并没有达到我想要的效果:
{
"codfis": { // it named the json object like this, and not "Example1" like above
"Cognome": "Yoyo",
"Nome": "OK!",
"Sesso": "Nice",
"LuogoDiNascita": "Good",
"Provincia": "Perfect",
"DataDiNascita": "Fine"
}
}
我也试过这个:
string codfis = "Example1";
var jsonCF = new {
[codfis] = new { // putting brackets on the variable
Cognome = vcgm,
Nome = vnm,
Sesso = ss,
LuogoDiNascita = ldn,
Provincia = pr,
DataDiNascita = ddn
}
};
但它给了我一个语法错误。
所以我只想做这个......
{
"Example1": {
"Cognome": "Yoyo",
"Nome": "OK!",
"Sesso": "Nice",
"LuogoDiNascita": "Good",
"Provincia": "Perfect",
"DataDiNascita": "Fine"
}
}
我该怎么做?
【问题讨论】:
-
使用字典,而不是匿名对象。
-
您在一个名为
jsonCF的已初始化对象中初始化了一个名为codfis的对象。它不会将其视为变量并尝试获取其值,这并不奇怪。编辑:也许在创建对象后,您应该尝试访问codfiskey并将其名称更改为codfis变量的值。 -
@DanielA.White 你能解释一下吗?例如,我总是使用字典来获取字符的整数...
-
@FotisPapadamis 等等,我明白了一半,你能用一些代码解释一下吗?
-
@zAlweNy26 使用您想要的键值对创建一个字典。现在要克服错误的
codfis键看看here