1

我想将 VB.NET 中的服务调用返回的 JSON 反序列化为匿名类型,但我遇到了错误。它使用动态类型在 C# 中工作,但我不知道如何在 VB 中做到这一点。

这是我从 Web 服务调用返回的 JSON:

{"format":"png","height":564,"width":864}

这是我上面分配给参数文本的VB代码json:

Dim testObj = Newtonsoft.Json.JsonConvert.DeserializeObject(text)

但是当我尝试访问 testObj.format 时,抛出异常并显示消息

{"Public member 'format' on type 'JObject' not found."}

我已经加了Option Strict Off。我不想使用对象/类来反序列化 JSON。如果它在 C# 中将其分配给动态类型将可以正常工作。

有人可以帮忙吗?我不是 VB 专家,但我需要在 VB 上运行它。TIA

4

2 回答 2

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)
于 2013-03-20T15:44:11.953 回答
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)
于 2013-04-02T11:57:35.850 回答