如何在ToJSON输出中添加指定格式的Timestamp头部信息
如何给VB.NET生成的JSON数组添加指定格式的时间戳头部
嘿,这个需求其实挺常见的,你只需要把原来的PIValues数组包装到一个包含时间戳的外层对象里就行,给你两种实用的实现方式:
方法一:创建专门的响应包装类
这种方式适合需要多次复用这个结构的场景,代码更清晰易维护:
首先定义一个包含时间戳和PI数据的新类:
Public Class PIResponse ' 按照要求格式定义时间戳属性 Public Property TimeStamp As String ' 原来的PIValues数组作为子属性 Public Property PIValues As PIValues End Class
然后在生成JSON的时候,先构造这个包装对象,再序列化:
' 假设你已经生成好了PIValues实例(piValues) Dim currentTimeStamp = DateTime.Now.ToString("yyyyMMdd hh:mm:ss") Dim response = New PIResponse() With { .TimeStamp = currentTimeStamp, .PIValues = piValues } ' 序列化输出(以Newtonsoft.Json为例,如果你用System.Text.Json写法类似) Dim jsonOutput = Newtonsoft.Json.JsonConvert.SerializeObject(response)
方法二:使用匿名类型快速实现
如果只是临时需求,不想额外定义类,可以直接用匿名类型来包装:
' 假设你已经有了生成好的piValues实例 Dim response = New With { .TimeStamp = DateTime.Now.ToString("yyyyMMdd hh:mm:ss"), .PIValues = piValues } ' 序列化输出 Dim jsonOutput = Newtonsoft.Json.JsonConvert.SerializeObject(response)
注意事项
- 这里用的
hh是12小时制的小时格式,如果需要24小时制,把格式字符串改成"yyyyMMdd HH:mm:ss"即可(大写的HH) - 如果你使用的是.NET Core 3.0+自带的
System.Text.Json,只需要把序列化代码换成System.Text.Json.JsonSerializer.Serialize(response)就行
内容的提问来源于stack exchange,提问作者Paul Johnson
相关产品推荐
相关产品推荐

