亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

命名具有可變內容的對象以在 json 文件中序列化

命名具有可變內容的對象以在 json 文件中序列化

C#
江戶川亂折騰 2022-12-24 09:54:42
我正在嘗試將對象序列化為 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"    }}我該怎么做 ?
查看完整描述

2 回答

?
qq_笑_17

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);

}


查看完整回答
反對 回復 2022-12-24
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

除了這是匿名對象這一事實之外,這實際上是正確序列化的。從不使用在 jsonCF 對象之外初始化的 codfis 對象。您實際上是在創建一個全新的對象來表示對象內部的屬性。


“解決方案”取決于您要對此序列化項目執行的操作。如果您想要的話,您只需要引用現有變量而不是創建一個新變量?;蛘撸绻幌雽⒃搶傩缘拿Q設為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}

};


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號