我想将返回的JSON从VB.NET中的服务调用反序列化为匿名类型,但我遇到了错误。它使用动态类型在C#中工作,但我不知道如何在VB中执行它。
这是我从Web服务调用返回的JSON:
{"format":"png","height":564,"width":864}
这是我上面的VB代码json分配给param文本:
Dim testObj = Newtonsoft.Json.JsonConvert.DeserializeObject(text)
但是当我试图访问testObj.format时,抛出了带有消息
的异常{"Public member 'format' on type 'JObject' not found."}
我已添加Option Strict Off
。我不想使用Object / Class来反序列化JSON。如果它在C#中将其分配给动态类型将正常工作。
有人可以帮忙吗?我不是VB的专家,但我需要在VB上运行它。 TIA
答案 0 :(得分:0)
Dim js As New System.Web.Script.Serialization.JavaScriptSerializer
Dim testObj = js.Deserialize(source, New Object().GetType())
然后您可以通过以下方式访问密钥(属性名称)/值:
value=testobj(key)
还有一件事,您可以通过以下方式访问Newtonsoft键(属性名称)/值:
value=testObj.item(key)
答案 1 :(得分:0)
Dim js As New System.Web.Script.Serialization.JavaScriptSerializer
Dim DeSerialObjEventData = New With {.Prop1 = String.Empty, .Prop2 = String.Empty, .Prop3 = String.Empty}...
Dim testObj = js.DeserializeAnnonomusType(source, DeSerialObjEventData)