目前開發工具為.net,由於對方json電文規格中開頭為數字
範例如下:
resJson="{"status":"0000","2status":"0001"}"
請問該如何去接收?是否只能用字串拆解的方式,在幫他重新定義一個物件的名稱,當字串如果遇2status,將內容寫到某個自行定義好的變數中?
煩請各位高手指教,謝謝
目前若無開頭為數字的變數名稱的話,使用接收方式是先定義一個class來接收該json格式
Dim resJson As String = .Value()
Dim resInfo = New JavaScriptSerializer().Deserialize(Of resBody)(resJson)
Class resBody
Dim test As New isBody
Structure isBody
Dim status As String '狀態'
End Structure
Property status() As String
Get
Return test.status
End Get
Set(ByVal value As String)
test.status = value
End Set
End Property
End Class
我有想到一個折衷的辦法提供給大大,
不過要用 Nuget 安裝 Newtonsoft.Json 這個套件,
接著將接收 JSON 的 Class,開頭為數字的欄位前面加底線,
然後透過 JsonProperty Attribute 對應原始的欄位名稱
程式碼:
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
Dim json As String = "{""status"":""0000"",""2status"":""0001""}"
Dim obj = JsonConvert.DeserializeObject(Of Body)(json)
End Sub
Public Class Body
Public Property status As String
<JsonProperty("2status")>
Public Property _2status As String
End Class
已有成功導向新的變數名稱,感謝協助!!
由於開發工具為vs2008 ,將安裝nuGet方式附在下方網址提供參考
https://www.hanselman.com/blog/NuGetSupportForVisualStudio2008.aspx
很高興幫助到您