我正在尝试解析从服务返回的 Json 字符串。为简单起见,它将类似于:
Dim jsonstring = _
<s>
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
</s>.Value
现在我正在使用以下函数将 json 字符串读取到一个对象,但是所有属性总是什么都没有。我为上述字符串中的每个 json 对象创建了一个对象,并且该对象具有 Datacontract 和 Datamember 属性。请问有什么提示吗?
Dim menu = JsonObject(Of Menu)(jsonstring)
Console.WriteLine(menu.value)
Private Function JsonObject(Of t)(jsonString As String) As t
Dim ser As New DataContractJsonSerializer(GetType(t))
Dim ms As New MemoryStream(Encoding.UTF8.GetBytes(jsonString))
ms.Position = 0
Dim obj As t = DirectCast(ser.ReadObject(ms), t)
Return obj
End Function