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

时间:2021-05-19 09:31:48

标签: c# json javascriptserializer

我有这个结果

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 203.0.113.10-203.0.113.15

我想达到以下结果。

{
    "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": "استمرار"
        }
      ]
}

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

enter image description here

任何提示表示赞赏。谢谢

2 个答案:

答案 0 :(得分:1)

您序列化一个字典,其中键是您的 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);

答案 1 :(得分:0)

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

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

相关问题