es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Añadir un nuevo elemento a una lista json usando Visual Basic.

Por lo tanto, estoy construyendo una aplicación y estoy leyendo un archivo JSON para poder agregar una nueva reserva, pero después de buscar en línea, no encontré ninguna manera de agregar un nuevo “dict” a una “lista” usando Visual Basic y Newtonsoft.JSON.

El archivo JSON:

{ “reservations”: [{“time”: “07:00 pm”, “tableId”: “1”, “clientName”: “Antonio Goncalves”, “status”: “pending”}]}

Básicamente, quiero agregar un nuevo diccionario de valores dentro de la lista de reservas.

La función actual:

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.IsNullOrEmpty(reservationFile) And Not String.IsNullOrWhiteSpace(reservationFile) Then
        Dim reservationJson = Linq.JObject.Parse(reservationFile)
        Dim newReservationObject = Linq.JObject.FromObject(New Dictionary(Of Object, Object) From {{"time", time}, {"tableId", tableId}, {"clientName", clientName}, {"status", status}})

        Trace.WriteLine(newReservationObject)
    End If

End Sub

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para agregar un nuevo diccionario de valores a la lista de reservas utilizando Visual Basic y Newtonsoft.JSON, primero necesitamos obtener la lista de reservas del archivo JSON utilizando el método SelectToken. Luego, podemos crear un nuevo JObject con los valores que queremos agregar y usar el método Add para agregarlo a la lista de reservas. Por último, podemos guardar el archivo JSON modificado utilizando la clase JsonConvert.

    Aquí está la función modificada:

    Public Sub SetReservation(time As String, tableId As String, clientName As String, Optional status As String = "pendiente")
        Dim reservationFile As String = File.ReadAllText(reservationJsonFile)
    
        If Not String.IsNullOrEmpty(reservationFile) And Not String.IsNullOrWhiteSpace(reservationFile) Then
            Dim reservationJson = JObject.Parse(reservationFile)
    
            ' Obtener la lista de reservas
            Dim reservations = reservationJson.SelectToken("reservas")
    
            ' Crear un nuevo JObject con los valores de la reserva
            Dim newReservationObject = JObject.FromObject(New Dictionary(Of Object, Object) From {{"tiempo", tiempo}, {"idMesa", idMesa}, {"nombreCliente", nombreCliente}, {"estado", estado}})
    
            ' Añadir el nuevo JObject a la lista de reservas
            reservas.Add(newReservationObject)
    
            ' Guardar el archivo JSON modificado
            File.WriteAllText(reservationJsonFile, reservationJson.ToString())
        End If
    End Sub
    

    Ahora, puede llamar a esta función para agregar una nueva reserva al archivo JSON:

    SetReservation("08:00 pm", "2", "John Doe", "confirmado")
    

Comments are closed.