如何返回对象属性名称作为节点名称

阿尔斯拉尼巴尔

我在返回api结果时被卡住,我有一个类似的类

public partial class Sample
{
    [JsonProperty("classificator")]
    public List<Classificator> Classificator { get; set; }
}

public partial class Classificator
{
    [JsonProperty("Value")]
    public string Value { get; set; }

    [JsonProperty("Description")]
    public string Description { get; set; }
}

假设GetJson方法从数据库中检索我们的数据,有2条记录,数据类似于

-值-说明

1- A-AXA

2- B-BXA

response = GetJson(); // this method gets data from db 
return Content(HttpStatusCode.OK, response);

当我退回它时,就像

{
    "classificator": [{
            "Value": "A",
            "Description": "AXA"
        }, {
            "Value": "B",
            "Description": "BXA"
        }
    ]
}

但我想看,我想看下面的结果;

{
    "classificator": [{
            "A": "AXA"
        }, {
            "B" : "BXA"
        }
    ]
}

我想问你,也许有人知道一个好的做法或文档(教程)。

我通过使用Dictionary <string,model>解决它

但是我需要返回一个巨大的嵌套字段,无法为所有不同的节点实现此解决方案。

阿尔斯拉尼巴尔

我通过使用Dictionary <string,object>解决了

我将2个嵌套对象放在对象值内。就我而言,它看起来有些复杂,我需要重构并尝试通过可读的字典层次结构工作。

在这个例子中,基本上如下

Dictionary<string, object> fooDict = new Dictionary<string, object>();

fooDict.Add("A", "AXA"); // in my case I put 2 nested object to value field
fooDict.Add("B", "BXA"); 

var serializedObject = JsonConvert.SerializeObject(fooDict);

using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\xxx\result.txt", true))
{
    file.WriteLine(serializedObject);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章