【发布时间】:2016-05-31 05:29:04
【问题描述】:
大家好,我有以下 SQL 查询,输出以下内容:
ID | Name | theRole | THrs | Mon |....| trainH1 | train58 | train52 | train05 |etc...
===========================================================================================
152 | BOB M. | Admin | 40 | 1-9pm |....| 168dGrc0 | 89220E | 2FDEx56 | 5569CCz |......
理想情况下,我希望结构看起来像这样 [注意:下面有其他表名]:
{
"scheduleName": "",
"firstName": "",
"lastName": "",
"theRole": "",
"linker": "",
"Schedule": {
"ID": "",
"totalHrs": "",
"Mon": "",
"Tue": "",
"Wed": "",
"Thu": "",
"Fri": "",
"Sat": ""
},
"empInfo": {
"ID": "",
"Email": "",
"Phone": "",
"Active": "",
"Img": "",
"Badge": ""
},
"availability": {
"ID": "",
"Mon": "",
"Tue": "",
"Wed": "",
"Thu": "",
"Fri": "",
"Sat": ""
},
"training": {
"?": "?"
}
}
火车是我遇到问题的地方。数据库中的这些值可以在任何给定时间更改名称或添加或删除。目前我有大约 35 个值。因此,我无法像使用 ID、Name 那样在我的 类函数 中硬编码这些值、角色、THrs等...
VB.net 类定义到目前为止如下所示:
Public Class Schedule
Private m_ID As String
Private m_totalHrs As String
Private m_Mon As String
Private m_Tue As String
Private m_Wed As String
Private m_Thu As String
Private m_Fri As String
Private m_Sat As String
Public Property ID() As String
Get
Return m_ID
End Get
Set
m_ID = Value
End Set
End Property
Public Property totalHrs() As String
Get
Return m_totalHrs
End Get
Set
m_totalHrs = Value
End Set
End Property
Public Property Mon() As String
Get
Return m_Mon
End Get
Set
m_Mon = Value
End Set
End Property
Public Property Tue() As String
Get
Return m_Tue
End Get
Set
m_Tue = Value
End Set
End Property
Public Property Wed() As String
Get
Return m_Wed
End Get
Set
m_Wed = Value
End Set
End Property
Public Property Thu() As String
Get
Return m_Thu
End Get
Set
m_Thu = Value
End Set
End Property
Public Property Fri() As String
Get
Return m_Fri
End Get
Set
m_Fri = Value
End Set
End Property
Public Property Sat() As String
Get
Return m_Sat
End Get
Set
m_Sat = Value
End Set
End Property
End Class
Public Class EmpInfo
Private m_ID As String
Private m_Email As String
Private m_Phone As String
Private m_Active As String
Private m_Img As String
Private m_Badge As String
Public Property ID() As String
Get
Return m_ID
End Get
Set
m_ID = Value
End Set
End Property
Public Property Email() As String
Get
Return m_Email
End Get
Set
m_Email = Value
End Set
End Property
Public Property Phone() As String
Get
Return m_Phone
End Get
Set
m_Phone = Value
End Set
End Property
Public Property Active() As String
Get
Return m_Active
End Get
Set
m_Active = Value
End Set
End Property
Public Property Img() As String
Get
Return m_Img
End Get
Set
m_Img = Value
End Set
End Property
Public Property Badge() As String
Get
Return m_Badge
End Get
Set
m_Badge = Value
End Set
End Property
End Class
Public Class Availability
Private m_ID As String
Private m_Mon As String
Private m_Tue As String
Private m_Wed As String
Private m_Thu As String
Private m_Fri As String
Private m_Sat As String
Public Property ID() As String
Get
Return m_ID
End Get
Set
m_ID = Value
End Set
End Property
Public Property Mon() As String
Get
Return m_Mon
End Get
Set
m_Mon = Value
End Set
End Property
Public Property Tue() As String
Get
Return m_Tue
End Get
Set
m_Tue = Value
End Set
End Property
Public Property Wed() As String
Get
Return m_Wed
End Get
Set
m_Wed = Value
End Set
End Property
Public Property Thu() As String
Get
Return m_Thu
End Get
Set
m_Thu = Value
End Set
End Property
Public Property Fri() As String
Get
Return m_Fri
End Get
Set
m_Fri = Value
End Set
End Property
Public Property Sat() As String
Get
Return m_Sat
End Get
Set
m_Sat = Value
End Set
End Property
End Class
Public Class Training
Private m_something1 As String
Private m_something2 As String
Private m_something3 As String
Public Property something1() As String
Get
Return m_something1
End Get
Set
m_something1 = Value
End Set
End Property
Public Property something2() As String
Get
Return m_something2
End Get
Set
m_something2 = Value
End Set
End Property
Public Property something3() As String
Get
Return m_something3
End Get
Set
m_something3 = Value
End Set
End Property
End Class
Public Class RootObject
Private m_scheduleName As String
Private m_firstName As String
Private m_lastName As String
Private m_theRole As String
Private m_linker As String
Private m_Schedule As Schedule
Private m_empInfo As EmpInfo
Private m_availability As Availability
Private m_training As Training
Public Property scheduleName() As String
Get
Return m_scheduleName
End Get
Set
m_scheduleName = Value
End Set
End Property
Public Property firstName() As String
Get
Return m_firstName
End Get
Set
m_firstName = Value
End Set
End Property
Public Property lastName() As String
Get
Return m_lastName
End Get
Set
m_lastName = Value
End Set
End Property
Public Property theRole() As String
Get
Return m_theRole
End Get
Set
m_theRole = Value
End Set
End Property
Public Property linker() As String
Get
Return m_linker
End Get
Set
m_linker = Value
End Set
End Property
Public Property Schedule() As Schedule
Get
Return m_Schedule
End Get
Set
m_Schedule = Value
End Set
End Property
Public Property empInfo() As EmpInfo
Get
Return m_empInfo
End Get
Set
m_empInfo = Value
End Set
End Property
Public Property availability() As Availability
Get
Return m_availability
End Get
Set
m_availability = Value
End Set
End Property
Public Property training() As Training
Get
Return m_training
End Get
Set
m_training = Value
End Set
End Property
End Class
当我不知道数据名称是什么时,如何为 json.net 创建一个序列化结构?我正在考虑一种 List(as String) 甚至是 Dictionary(String, String) 但仍然不确定如何将它们添加到类中并填充它使用这些值的 sql 数据。
这就是我要问的:
(1) 当我不知道这些表名是什么时,如何让类结构接受 sql 列名和值?
(2) 能够从类函数中的数据中形成我想要的json结构。
【问题讨论】:
-
您现在如何读取 SQL 数据以获取您知道名称的其他值?
-
只使用常规的 SQLReader 循环。
标签: sql-server json vb.net json.net