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

使用Visual Basic和Newtonsoft.JSON向JSON列表添加新条目的实现问题问询

Visual Basic 搭配 Newtonsoft.Json 新增JSON数组元素的解决方案

你已完成JSON读取、新预订对象创建的逻辑,仅需补充获取预订数组、追加新对象、写回文件三个步骤即可,修改后完整代码如下:

' 需先在文件头部导入依赖命名空间
' Imports System.IO
' Imports Newtonsoft.Json
' Imports Newtonsoft.Json.Linq

Public Sub SetReservation(time As String, tableId As String, clientName As String, Optional status As String = "pending")
    Dim reservationFile As String = File.ReadAllText(reservationJsonFile)

    If Not String.IsNullOrWhiteSpace(reservationFile) Then
        Dim reservationJson As JObject = JObject.Parse(reservationFile)
        ' 创建新的预订对象,将字典键类型调整为String更符合JSON规范
        Dim newReservationObject As JObject = JObject.FromObject(New Dictionary(Of String, String) From {
            {"time", time},
            {"tableId", tableId},
            {"clientName", clientName},
            {"status", status}
        })
        
        ' 核心逻辑:获取reservations数组并追加新对象
        Dim reservationList As JArray = CType(reservationJson("reservations"), JArray)
        reservationList.Add(newReservationObject)
        
        ' 将修改后的JSON序列化后写回原文件
        File.WriteAllText(reservationJsonFile, reservationJson.ToString())
        
        Trace.WriteLine(newReservationObject)
    End If
End Sub

可选健壮性优化项:

  • 可增加If reservationJson("reservations") Is Nothing OrElse Not TypeOf reservationJson("reservations") Is JArray的判断,匹配JSON无reservations字段、字段类型异常的场景,异常时手动初始化空JArray赋值给reservationJson("reservations")即可
  • 如果需要生成压缩格式的JSON,可将写回文件的代码替换为File.WriteAllText(reservationJsonFile, reservationJson.ToString(Formatting.None))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:36:10