You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中Newtonsoft JsonProperty排序及属性名设置语法问题

在VB.NET中设置JsonProperty的序列化顺序与属性名

嘿,我来帮你搞定这个VB.NET里的Json序列化属性配置问题!你之前编译报错的核心原因是VB.NET和C#在特性参数的写法上有区别——C#用=指定命名参数,但VB.NET必须用:=才行。

下面直接给你正确的写法,同时包含序列化顺序(Order)和自定义属性名(PropertyName)的设置:

第一步:确保引用Json.NET库

首先要确认你的项目已经安装了Newtonsoft.Json(也就是常说的Json.NET),可以通过NuGet包管理器完成安装。

第二步:VB.NET的正确代码示例

Imports Newtonsoft.Json

' 定义实体类
Public Class Customer
    ' 同时设置序列化顺序(Order=1)和自定义属性名(CardCode)
    <JsonProperty(Order:=1, PropertyName:="CardCode")>
    Public Property CustomerCode As String

    ' 序列化顺序为2,属性名为CardName
    <JsonProperty(Order:=2, PropertyName:="CardName")>
    Public Property CustomerName As String

    ' 序列化顺序为3,属性名为Contact
    <JsonProperty(Order:=3, PropertyName:="Contact")>
    Public Property ContactPerson As String
End Class

第三步:验证序列化效果

你可以用下面的代码测试序列化结果,看看属性顺序是否符合预期:

' 创建实例
Dim testCustomer As New Customer With {
    .CustomerCode = "C0001",
    .CustomerName = "Tech Corp Ltd",
    .ContactPerson = "Jane Smith"
}

' 序列化并输出格式化后的JSON
Dim resultJson As String = JsonConvert.SerializeObject(testCustomer, Formatting.Indented)
Console.WriteLine(resultJson)

输出的JSON会严格按照你设置的Order顺序排列:

{
  "CardCode": "C0001",
  "CardName": "Tech Corp Ltd",
  "Contact": "Jane Smith"
}

额外提示

如果需要添加其他Json序列化配置(比如忽略空值),可以直接在同一个JsonProperty特性里追加参数,比如:

<JsonProperty(Order:=1, PropertyName:="CardCode", NullValueHandling:=NullValueHandling.Ignore)>
Public Property CustomerCode As String

内容的提问来源于stack exchange,提问作者PSU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:17:43