Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

246
Vistas
How to update large JSON objects?

The server sends me a data as JSON to descripe a product. A product consists of properties and nested arrays of properties, up to 4 level deep. In the Frontend the user can update deep nested values. Do I need to keep track of the path an then reconstruct the whole JSON object for my updating POST call? Or is there a more elegant way to do it? Or is the design of the backend service bad?

data as JSON

{
  "productId": 10,
  "features": [
    {
      "id": 45,
      "name": "Customization",
      "productOptions": [
        { 
          "id": 1, 
          "color": ["red", "green"],
        },
        { 
          "id": 2, 
          "slogans": [
             {"id": 32, "name":"Thank You"},
             {"id": 33, "name":"Thanks a lot"},
          ],
        }
      ]
    }
  ]
}

input to edit slogan

<input data-id="32" type="text" name="slogan" />

edit JSON to send back to the server

const update = {"id": 32, "name":"Thank You so much!"}

// update slogan array
solgansUpdateIndex = slogans.findIndex(obj => obj.id == 32)
slogans[solgansUpdateIndex] = update

...

// update whole object for the updating POST call

{...data, //updateTree} 
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

You should not need to send the whole object back to the server. What you should do is send a set of ids that uniquely identify which field should be updated.

Example: Let's take your data where productId is 10 and featureId is 45

You can create a controller in the backend such as updateProductSlogan(int productId, int featureId, int sloganId, String/Slogan newSlogan).

And then what this endpoint should do is get the corresponding slogan from your database with a query, using these ids and update that slogan with value of newSlogan param.

Note: If only field that contains slogans is the features field you can also hardcode that and change the method to updateProductSlogan(int productId, int sloganId, String/Slogan newSlogan). in which you will fetch the features property with no need to use an id for.

about 4 years ago · Juan Pablo Isaza Denunciar

0

I also want to echo my previous comment that, when working with any JSON, you always (1) decode the JSON string into a data structure; (2) work with that data structure (not the string); and if necessary (3) encode the data structure back into a string.

You should never attempt to manipulate the string "as a string." Treat the JSON content as a black box and trust the "magic encoder/decoder ring" to always do the right thing. JSON is an international data standard with known-good encoder/decoder libraries that everyone uses.

The same principle is true for XML, YAML, or any other such string-encoding method. "It's a black box."

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda