如何在VB类中添加Accessorial代码生成指定JSON结构?
JSON序列化与Accessorial代码添加方案
一、给Accessorials的codes添加"HAZ"的简便方法
你当前用的String()是固定长度数组,VB里没法直接往里面追加元素,更推荐换成List(Of String)——既能灵活添加元素,序列化后生成的JSON依然是数组格式,完全满足需求:
Public Class Accessorials ' 把固定数组替换为可动态操作的List Public codes As New List(Of String) End Class
之后在主类中直接添加元素即可:
Dim load As New fgtload load.accessorials.codes.Add("HAZ")
如果一定要保留String()数组,就得手动扩容复制元素,代码会繁琐一些:
' 扩容数组并复制原有元素 Dim newCodes As String() = New String(load.accessorials.codes.Length) {} Array.Copy(load.accessorials.codes, newCodes, load.accessorials.codes.Length) ' 添加新的"HAZ"代码 newCodes(newCodes.Length - 1) = "HAZ" ' 替换原数组 load.accessorials.codes = newCodes
二、主类的accessorials要不要改成List(Of Accessorials)?
这完全取决于你要生成的目标JSON结构:
- 如果目标JSON是单个对象嵌套结构,比如:
保持当前{ "accessorials": { "codes": ["HAZ"] } }Public accessorials As New Accessorials的写法即可,无需修改。 - 如果目标JSON是包含多个Accessorials对象的数组结构,比如:
这时才需要把主类中的定义改成{ "accessorials": [ {"codes": ["HAZ"]}, {"codes": ["FRE"]} ] }Public accessorials As New List(Of Accessorials),之后可以添加多个Accessorials实例。
三、序列化生成JSON示例
用VB常用的Newtonsoft.Json库序列化的代码示例:
Imports Newtonsoft.Json ' 生成格式化后的JSON字符串 Dim jsonStr As String = JsonConvert.SerializeObject(load, Formatting.Indented)
内容的提问来源于stack exchange,提问作者dashley
相关产品推荐
相关产品推荐

