none
Transformación datos json recibido desde API. RRS feed

  • Pregunta

  • Buen día colegas, estoy desarrollando una API en C# con .Net Core 2.1. El punto es que me retorna un json con el siguiente formato:

    [
        {
          "keyDel": "102",
          "nombre": "LOCALIDAD A"
        },
          {
          "keyDel": "254",
          "nombre": "LOCALIDAD B"
        },
          {
          "keyDel": "037",
          "nombre": "LOCALIDAD C"
       },
          {
          "keyDel": "074",
          "nombre": "LOCALIDAD D"
       }
    ]

    Necesito transformarlo en algo así:

    { 102: 'LOCALIDAD A', 254: 'LOCALIDAD B', 037: 'LOCALIDAD C', 074: 'LOCALIDAD D' }

    No se si existe un comando que haga esto, ya sea desde la API o desde el código mio en el FrontEnd, que esta desarrollado en React.js, necesito transformarlo para que lo pueda interpretar uno de los componentes que estoy utilizando.

    Desde ya muchas gracias, y como siempre digo, mil disculpas si mi pregunta no corresponde al grupo.

    martes, 11 de junio de 2019 14:45

Todas las respuestas

  • hola existe una pagina que te convierte el json http://json2csharp.com esta pagina te arma la clase.

    public partial class TuClase
        {
            [JsonProperty("keyDel")]
            public string KeyDel { get; set; }
    
            [JsonProperty("nombre")]
            public string Nombre { get; set; }
        }



    • Editado EnzoTuc40 martes, 11 de junio de 2019 15:05
    martes, 11 de junio de 2019 15:03
  • hola existe una pagina que te convierte el json http://json2csharp.com esta pagina te arma la clase.

    public partial class TuClase
        {
            [JsonProperty("keyDel")]
            public string KeyDel { get; set; }
    
            [JsonProperty("nombre")]
            public string Nombre { get; set; }
        }



    Perdon me olvidaba, ademas debes usar la libreria 

    Newtonsoft.Json

    martes, 11 de junio de 2019 15:09
  • Enzo, muchas gracias por tu tiempo y ayuda, pero me parece que no es lo que estoy necesitando, igualmente, voy a ver la página.

    Muy cordialmente.

    Javier O. Chércoles

    martes, 11 de junio de 2019 15:15
  •  Hola Javier Osvaldo Chércoles,

    La verdad yo pienso que el mejor método para resolver es hacerlo tu mismo en el front.

    Pero existe un procedimiento para hacer no la "transformación" como tal, pero sí para aplicar las propiedades de serialización a un Json que debes considerar interesante ya que te lo permitiría almacenarlo o trabajar con dicha información del Json en un stream distinto quizá con el orden y formato que tu requieres.

    Te dejo el enlace, espero te sirva

    https://docs.microsoft.com/es-es/dotnet/framework/wcf/feature-details/how-to-serialize-and-deserialize-json-data

    No dude en ampliar más sobre este tema si es que aún lo requiriera o de abrir una nueva consulta en caso de tener alguna otra situación o de necesitarla con algún otro de los productos de Microsoft.

     

    Adicional le invito a consultar los siguientes recursos:

    Guía para formular preguntas en el foro

     

    Gracias por usar los foros de MSDN.

    Erick Rivera

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de    conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 11 de junio de 2019 16:27
  • hola

    >>Necesito transformarlo en algo así:

    porque necesitas esa estructura ? no la veo valida

    recuerda que eso que pones 102, 254, ... lo estas definiendo como propiedades, lo cual no esta correcto

    >>No se si existe un comando que haga esto, ya sea desde la API o desde el código mio en el FrontEnd

    existen el JToken para acceder a las propiedades y generar un linq anonimo

    Using JObject.Properties

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 11 de junio de 2019 16:59
  • Si Leandro, entiendo lo que me decís, e incluso viendo las respuestas, tal vez no sea este el foro correcto. Ya que como esto lo tengo que resolver del lado del cliente, seguramente tendría que consultar en un foro de React.js.

    Esto me lo pide en ese formato, para cargar un combo en una celda de un control Material-Table.

    Disculpen, y mil gracias por su ayuda y tiempo.

    Javier.

    martes, 11 de junio de 2019 17:47