2 回答
TA贡献1818条经验 获得超7个赞
正如评论中提到的其他 OPS,创建字典并序列化它
string codfis = "Example1";
var codfisValue = new
{ // codfis is the name of the variable as you can see
Cognome = "vcgm",
Nome = "vnm",
Sesso = "ss",
LuogoDiNascita = "ldn",
Provincia = "pr",
DataDiNascita = "ddn"
};
var jsonCF = new Dictionary<string, object>();
jsonCF.Add(codfis, codfisValue);
using (StreamWriter file = File.CreateText("CodFisCalcolati.json"))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(file, jsonCF);
}
TA贡献1799条经验 获得超9个赞
除了这是匿名对象这一事实之外,这实际上是正确序列化的。从不使用在 jsonCF 对象之外初始化的 codfis 对象。您实际上是在创建一个全新的对象来表示对象内部的属性。
“解决方案”取决于您要对此序列化项目执行的操作。如果您想要的话,您只需要引用现有变量而不是创建一个新变量。或者,如果您只想将该属性的名称设为Example1,只需将其设置为如下所示:
var jsonCF = new {
Example1 = new { //Note the property name
Cognome = vcgm,
Nome = vnm,
Sesso = ss,
LuogoDiNascita = ldn,
Provincia = pr,
DataDiNascita = ddn
}
};
或者,
var codfis = new {
Cognome = vcgm,
Nome = vnm,
Sesso = ss,
LuogoDiNascita = ldn,
Provincia = pr,
DataDiNascita = ddn
};
var jsonConf = new {
Example1 = codfis
}
如果您希望属性名称和值都不同,您可能会使用字典而不是那样做
var codfisName = "Example1";
var jsonConf = new Dictionary<string, object>{
{codfisName, codfis}
};
- 2 回答
- 0 关注
- 82 浏览
添加回答
举报