Это смысл продолжения of this question. Но, чтобы быть точным, я объясняю, что я хочу делать. Я разработал веб-приложение, которое позволяет пользователю управлять рабочими днями (я называю это рабочим планом), теперь я разрабатываю клиентское приложение для синхронизации локальных данных в веб-базе данных. Поэтому я должен иметь полную совместимость со всей информацией о данных от клиента в Интернете. Дно код просто создать workingPlan
для конкретного пользователя, это workingPlan в JsonFormat
, результат в том, что я хочу достичь, как это:Невозможно преобразовать String в свойство класса
"monday":{
"start":"09:00",
"end":"18:00",
"breaks":[
{
"start":"11:20",
"end":"11:30"
},
{
"start":"14:30",
"end":"15:00"
}
]
},
"tuesday":{
"start":"09:00",
"end":"18:00",
"breaks":[
{
"start":"11:20",
"end":"11:30"
},
{
"start":"14:30",
"end":"15:00"
}
]
},
Как вы можете видеть каждый день имеет start
и end
рабочее время. Кроме того, в каждый день у меня может быть несколько разрывов, это для разделения рабочего слота. Теперь json, закодированный сверху, является строкой, генерируемой PHP, а json, сгенерированный в vb.net
, является результатом заполнения DateTimePicker
. По сути то, что мне нужно сделать, это ревалоризировать разрывы, теперь я добавляю перерывы в DataGrid
, например:
Окончательный формат JSON будет (для этого конкретного случая):
{"monday":{"start":"09:00","end":"18:00","breaks":[{"start":"19:30","end":"19:50"},{"start":"21:40","end":"21:30"}]},"tuesday":{"start":null,"end":null,"breaks":[{"start":null,"end":null},{"start":"14:30","end":"15:00"}]},"wednesday":{"start":"09:00","end":"18:00","breaks":[{"start":"19:37","end":"19:50"}...
класс для управления Week
, Breaks
Day
так оБЪЯВЛЕННЫХ:
Public Class WorkDay
<JsonProperty("start")>
Public Property starttime As String
<JsonProperty("end")>
Public Property endtime As String
Public Property breaks As Break()
End Class
Public Class Break
<JsonProperty("start")>
Public Property starttime As String
<JsonProperty("end")>
Public Property endtime As String
End Class
Public Class WorkWeek
Public Property monday As WorkDay
Public Property tuesday As WorkDay
Public Property wednesday As WorkDay
Public Property thursday As WorkDay
Public Property friday As WorkDay
Public Property saturday As WorkDay
Public Property sunday As WorkDay
Public Sub New()
monday = New WorkDay
tuesday = New WorkDay
wednesday = New WorkDay
thursday = New WorkDay
friday = New WorkDay
saturday = New WorkDay
sunday = New WorkDay
End Sub
End Class
Теперь, ревалоризировать перерывы каждый день я итерацию по этому DataGrid
For Each row As DataGridViewRow In User.break_view.Rows
If Not row.IsNewRow Then
If row.Cells(0).Value.ToString = "Monday" Then
workWeek.monday.breaks = row.Cells(1).Value.ToString 'Incriminated line
End If
... each day condition
End If
Next
на этой workWeek.monday.breaks = row.Cells(1).Value.ToString
линии я получаю эту ошибку:
Can't convert String into Users.Break()
также я хочу знать, если есть способ, чтобы оптимизировать его , потому что на самом деле я должен выполнить условие 7 и проверить, является ли текущий день на итерации понедельник или вторник и т. д. ... и поэтому добавьте перерыв в этот конкретный день. Если бы я не понял, что я объяснил, скажите мне, и я постараюсь предоставить более подробные сведения о поставщике. Спасибо за внимание.
Это связано с тем, что разрывы свойств определяются как «Break». Мы не можем назначить напрямую. вы можете попробовать что-то вроде workWeek.monday.breaks = new Break(), за которым следует workWeek.monday.breaks.starttime = row.Cells (1) .value.ToString – Baskar
Я получаю starttime не является членом Break – Dillinger