请求指导将指定JSON转换为VB.NET强类型类
帮你创建对应的VB.NET强类型类
嘿Jake,完全理解你从SOAP转REST的不习惯——毕竟SOAP的强类型类都是VS自动搞定的,REST一开始确实有点摸不着头脑。不过别担心,我来帮你把这个错误响应的JSON转换成VB.NET的强类型类,顺便告诉你一个VS的小技巧,以后不用手动写啦!
首先先拆解你收到的JSON结构:
- 根对象包含两个属性:
Message(字符串类型,描述整体错误信息),ModelState(一个键值对集合,键是字段名/路径,值是对应的错误信息数组)
对应的VB.NET类代码如下:
Imports System.Collections.Generic Public Class ApiErrorResponse Public Property Message As String Public Property ModelState As Dictionary(Of String, String()) End Class
额外小技巧:让VS自动生成类!
你其实不用手动写这些类,Visual Studio有和SOAP类似的自动生成功能:
- 把你的JSON字符串复制到剪贴板
- 在VS里打开一个VB文件,右键→选择性粘贴→将JSON粘贴为类
VS会自动帮你生成对应的强类型类,是不是和SOAP的体验差不多了😉
反序列化示例(用Newtonsoft.Json)
如果你用Newtonsoft.Json(最常用的JSON库),可以这样把JSON字符串转换成类实例:
Dim jsonString As String = "{""Message"":""The request is invalid."",""ModelState"":{""command"":[""Required property 'Vendor' not found in JSON. Path '', line 1, position 310.""],""command.Terms"":[""The Terms field is required.""]}}" Dim errorResponse As ApiErrorResponse = Newtonsoft.Json.JsonConvert.DeserializeObject(Of ApiErrorResponse)(jsonString)
这样你就能像操作普通VB类一样访问errorResponse.Message或者errorResponse.ModelState("command")里的错误信息啦。
内容的提问来源于stack exchange,提问作者Jkyle Landicho
相关产品推荐
相关产品推荐

