使用自定义列名称将 c# class 序列化为 JSON 字符串

Serializing c# class to JSON string with custom column name

我有这个结果

{
    "StatusCode": "200",
    "Description": "Success",
    "Data": [
        {
            "Language_Key": "btn_select_country",
            "En_Val": "SELECT COUNTRY",
            "Ar_Val": "اختر الدولة"
        },
        {
            "Language_Key": "btn_continue",
            "En_Val": "CONTINUE",
            "Ar_Val": "استمرار"
        }
      ]
}

我想达到以下结果。

{
"StatusCode":"200",
"Description":"Success",
"Data":{
    "btn_select_country":{
          "En_Val":"SELECT COUNTRY",
          "Ar_Val":"اختر الدولة"
    },
    "btn_continue":{
          "En_Val":"CONTINUE",
          "Ar_Val":"استمرار"
    }
  }
}

我希望 Language_Key 替换为列名和 2 个子节点,因为下面的 EN 和 AR 是我的代码

如有任何提示,我们将不胜感激。谢谢

你序列化了一个字典,其中的键是你的 Language_Key:

Dictionary<string, Translation> dict = countryObj
    .ToDictionary(o => o.Language_Key, o => new Translation { Ar_Val = o.Ar_Val, En_Val = o.En_Val});
    
rs.Data =  dict;
json = new JavScriptSerializer().Serialize(rs);

您可以在序列化后使用 JsonProperty 属性重命名属性。

https://www.newtonsoft.com/json/help/html/JsonPropertyName.htm