लौटने पर खाली जेसन, सर्विसस्टैक के साथ मुझे एक बहुत ही अजीब समस्या है जब एक वर्ग जेएसओएन को क्रमबद्ध करता है - ऑब्जेक्ट खाली होते हैं, हालांकि एक्सएमएल ठीक काम करता है।सर्विसस्टैक - कक्षा
कुछ सुझाव मिला कि, JSON serializer केवल तभी काम करता है जब गुण सार्वजनिक होते हैं, लेकिन जैसा कि आप नीचे देख सकते हैं मेरी संपत्तियां सार्वजनिक हैं।
कृपया कोड और स्क्रीनशॉट के नीचे देखें। किसी भी सुझाव की बहुत सराहना की जाती है।
एक्सएमएल
JSON
GetUsers.aspx.vb
Public Class GetUsersAD
Public Property username As String
Public Property fullname As String
Public Function HandleRequest()
Dim _users As New List (Of User)
_users = GetUsersTest(_users)
Return _users
End Function
Public Function GetUsersTest(_users As List (Of User)) As List (Of User)
Dim dt As New DataTable
dt.Columns.Add("username")
dt.Columns.Add("fullname")
For x As Integer = 0 To 5
Dim newUserRow As DataRow = dt.NewRow()
newUserRow("username") = "username-" & x & ""
newUserRow("fullname") = "fullname-" & x & ""
dt.Rows.Add(newUserRow)
Next
For Each row As DataRow In dt.Rows
Dim _user As New User
_user.username = row("username")
_user.fullname = row("fullname")
_users.Add(_user)
Next
Return _users
End Function
End Class
Public Class User
Public username As String = ""
Public fullname As String = ""
End Class
Public Class Users
Public username As String = ""
Public fullname As String = ""
End Class
WS.vb
Public Class WrapperGetUsers
Implements IService(Of GetUsersAD)
Public Property username As String
Public Property fullname As String
Public Function Execute(ByVal request As GetUsersAD) As Object Implements ServiceStack.ServiceHost.IService(Of GetUsersAD).Execute
Return request.HandleRequest()
End Function
End Class
एक बार उपयोगकर्ता वर्ग में 'सार्वजनिक गुण' जोड़े जाने पर सभी ठीक काम करते हैं। पारितोषिक के लिए धन्यवाद। – Iladarsda
इसके अलावा, ऐसा लगता है कि आप उन गुणों को 'GetUsersAD' और' WrapperGetUsers' कक्षाओं से हटा सकते हैं, जब तक कि आप उन्हें किसी अन्य उद्देश्य के लिए उपयोग नहीं कर लेते। असल में, उन गुणों को न रखें जिन्हें आप अपने सेवा कक्षाओं में अपने अनुरोध/प्रतिक्रिया में रखना चाहते हैं, उन्हें एक अलग डीटीओ कक्षा (जैसे आपकी 'उपयोगकर्ता' कक्षा) में रखें। –
मुझे यकीन नहीं था कि मुझे गुण कहां रखना चाहिए ताकि मैंने उन्हें हर जगह इस्तेमाल किया। पारितोषिक के लिए धन्यवाद। – Iladarsda