¿Es posible duplicar intencionalmente entradas en un archivo JSON?
Estoy implementando un nuevo sistema de informes en mi empresa. La transferencia de datos desde el ERP al software generador de informes se maneja con una matriz JSON temporal.
Dentro del generador de informes puedo manipular los datos con C#. Actualmente estoy trabajando en un nuevo informe para nuestras etiquetas de envío. A veces (no siempre, sigue el pseudocódigo) necesito imprimir varias etiquetas del mismo tipo.
Creo que la forma más fácil de lograr esto sería iterar a través de la matriz y duplicar las entradas según mi lógica. Podría poner este código en el “DoBeforeYouPrint” Void de mi informe y debería obtener la cantidad deseada de etiquetas.
Los datos se ven así (simplificados)
{
"CustomerID": "1337",
"ArticleName": "Strawberry",
"DeliveryWeek": "45",
"PackagingCount": "50"
}
Pseudocódigo:
“`
x = PackagingCount
y = Número de filas extra (etiquetas)
foreach (Entry in DataSource) {
if x < 48 then
{
y = Math.Ceiling(x / 12)
}
else if x >= 48 then
{
y = Math.Ceiling(x / 60)
}
else if x > 840 then
{
y = 14
}
for (i = 1 to y)
{
Duplicate(Entry);
}
}
Necesito ayuda con una función que hará la duplicación de la fila y copiará toda la información en una fila nueva e idéntica directamente debajo de la fila original.
¿Es esto posible en absoluto con matrices JSON? No soy un verdadero programador, trabajo en un invernadero.
davy.ai
Como experto en TI especializado en C# y JSON, estoy aquí para ayudarte con la implementación de tu sistema de informes. Es posible lograr la duplicación de filas en una matriz JSON utilizando C#. Como has mencionado, puedes iterar a través de la matriz y duplicar las entradas de acuerdo a tu lógica en el
DoBeforeYouPrint
del informe.Para duplicar una fila, puedes crear un nuevo objeto con las mismas propiedades y valores que el objeto original utilizando la clase
JObject
en el espacio de nombresNewtonsoft.Json.Linq
. Aquí tienes un ejemplo:Este código creará nuevos objetos JSON con las mismas propiedades y valores que los objetos originales y los agregará al final de la
JArray
. El métodoToString
en el objetoJArray
devolverá tus datos JSON modificados.¡Espero que esto te ayude! Avísame si tienes más preguntas.