[英]Get the JSON Format using VB.net
建議我使用VB.net獲取如下所述的JSON格式
var fieldtypes = {
name: { label: 'Name', type: 'text', icon: 'fa-user' },
firstname: { label: 'First name', type: 'text', icon: 'fa-user' },
}
我想在Web方法中以AJAX調用的形式獲得這種格式。 我為此編寫了VB.net方法,但它不會生成上述的JSON。
VB.Net Web方法
Public Class FormBuilder
Public Property label() As String
Public Property type() As String
Public Property icon() As String
End Class
網絡方法:
Public Shared Function LogsheetDetail(LogMasterID As Integer) As String
Dim sCtrlTag As String = ""
Dim sDataType As String = ""
Dim finalVal As String = ""
Dim oDs As DataSet
Dim frmBuilder As New List(Of FormBuilder)()
Try
oDs = GenUser.TempLogsheetDetails(Conn, LogMasterID)
If oDs.Tables(0).Rows.Count > 0 Then
For i = 0 To oDs.Tables(0).Rows.Count - 1
sDataType = oDs.Tables(0).Rows(i)("data_type").ToString()
Select Case sDataType
Case "Text"
frmBuilder.Add(New FormBuilder() With { _
.label = oDs.Tables(0).Rows(i)("parameter_name").ToString(), _
.type = "text", _
.icon = "fa-user" _
})
End Select
Next
End If
oDs.Dispose()
Catch ex As Exception
Throw New Exception(ex.ToString)
Finally
If Not oDs Is Nothing Then oDs.Dispose()
End Try
Dim objJSSerializer As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim jsonString As String = objJSSerializer.Serialize(frmBuilder)
Return jsonString
我相信問題在於您的代碼創建的是對象數組,而不是單個對象。 我假設您的代碼正在生成這樣的輸出:
[
{ "label": "Name", "type": "text", "icon": "fa-user" },
{ "label": "First name", "type": "text", "icon": "fa-user" }
]
理想的解決方案是創建字典而不是列表。 但是,JsonSerializer類在字典上不能很好地工作, 因此需要一種變通方法 。
如果您可以使用Newtonsoft Json而不是JavascriptSerializer,則會更簡單。 以下代碼使用Newtonsoft Json NuGet包生成所需的輸出:
Dim dic = New Dictionary(Of String, FormBuilder)
dic.Add("name", New FormBuilder() With {
.label = "name",
.type = "text",
.icon = "fa-user"
})
dic.Add("firstname", New FormBuilder() With {
.label = "firstname",
.type = "text",
.icon = "fa-user"
})
Return Newtonsoft.Json.JsonConvert.SerializeObject(dic)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.