如何为JSON创建通用DataContract类

时间:2018-06-15 20:06:06

标签: c# sql asp.net json

好的,所以我一直试图找到一个很好的方法来做到这一点,但我有点卡住了。

我有一个SQL数据库,目前正在促进在asp.net中运行的网站,我的任务是删除网站并创建一个新网站,但仍保留旧数据库的一些功能。这导致了为数据库或服务器创建端点的想法,以输出稍后将被新网站抓取的json。

asp.net的教程要求使用DataContract类来创建Json格式,这对于从表中提取是很好的。例如:

[DataContract]
class People
{
    [DataMember]
    internal string firstName;

    [DataMember]
    internal string lastName;

    [DataMember]
    internal string title;
} 

这对于像SELECT * FROM PEOPLE这样简单的东西很好,但是当我想做更复杂的事情,比如内连接,变化的表,或者我甚至不知道SQL查询将是什么时,它会变得复杂但我可以根据SQL查询生成JSON输出。

我的问题是,有没有办法根据要完成的查询字符串来生成DataContract类的创建?是否有一个很好的方法来创建一个捕获所有DataContract for JSON?

2 个答案:

答案 0 :(得分:2)

C#是强类型的;所以合格的答案是否定的。如果您提前不知道数据类型/名称,则无法为它们创建类。

有人说;您始终可以使用Newtonsoft.Json从JSON创建JObject;这将基本上充当键值对集合(当然,这是JSON的真正含义)。如果你不能创建实际的课程,这可能是你最好的选择。

答案 1 :(得分:1)

好的,如果您使用的是MVC项目,我建议您阅读:

ASP.Net Music Store

在那里,您将从头开始查找完整的教程,并提供示例和大量有用的简化文档。

此外,如果您想了解更多信息,如何使用Linq

,这是一种很好的方法

Getting Started with LINQ in C#

例如,我已经拥有了数据库Mapped,您可以使用DbContext或简单查询。

var people = db.People.OrderBy(x => x. firstName);

但是,你提出了一个非常笼统的问题,你必须更具体地试图帮助你。