gpt4 book ai didi

c# - 如何将 List 转换为特定的 Json 格式

转载 作者:太空宇宙 更新时间:2023-11-03 14:13:35 27 4
gpt4 key购买 nike

我希望能够转换 List<T>转换为特定的 JSON 表格格式。在我的例子中,T将始终是一个简单的对象(没有嵌套属性)。这里有两个例子来说明我想要什么。

示例 #1:List<Person>到 JSON

// C# list of Persons
var list = new List<Person>() {
new Person() { First = "Jesse", Last = "Gavin", Twitter = "jessegavin" },
new Person() { First = "John", Last = "Sheehan", Twitter = "johnsheehan" }
};

// I want to transform the list above into a JSON object like so
{
columns : ["First", "Last", "Twitter"],
rows: [
["Jesse", "Gavin", "jessegavin"],
["John", "Sheehan", "johnsheehan"]
]
}

示例 #2:List<Address>到 JSON

// C# list of Locations
var list = new List<Location>() {
new Location() { City = "Los Angeles", State = "CA", Zip = "90210" },
new Location() { City = "Saint Paul", State = "MN", Zip = "55101" },
};

// I want to transform the list above into a JSON object like so
{
columns : ["City", "State", "Zip"],
rows: [
["Los Angeles", "CA", "90210"],
["Saint Paul", "MN", "55101"]
]
}

有没有办法告诉 JSON.net 以这种方式序列化对象?如果没有,我怎么能做到这一点?谢谢。

更新:

感谢@Hightechrider 的回答,我能够编写一些代码来解决问题。

您可以在此处查看工作示例 https://gist.github.com/1153155

最佳答案

使用反射你可以获得类型的属性列表:

        var props = typeof(Person).GetProperties();

给定一个 Person p 的实例,您可以获得属性值的枚举:

        props.Select(prop => prop.GetValue(p, null))

将它们包装在一个通用方法中,添加您最喜欢的 Json 序列化,您就拥有了您想要的格式。

关于c# - 如何将 List<T> 转换为特定的 Json 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7087312/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com