Programa Java para convertir Byte Array a JSON

JSON no es más que notación de objetos Javascript. Es un formato de texto para almacenar los datos y transportarlos. Por lo general, se indicará en pares de valores de string. Es independiente del idioma y puede ejecutarse en cualquier lugar. La notación JSON contiene los siguientes elementos básicos. Por lo tanto, la array de bytes enmarcada (de cualquier fuente que pueda haber convertido (es decir, a través de texto estático/salida de API Rest), debería admitir el patrón de análisis sintáctico correctamente.

Objetos Los objetos comienzan con ‘{‘(abrir) y terminan con ‘}’ (cerrar) llaves.
Miembros de objeto Los miembros están separados por comas y constan de strings y valores.
arreglos Los arreglos comienzan con ‘[‘(abierto) y terminan con llaves ‘]’ (final) y es casi similar a la estructura de datos Array. En la array JSON, será una colección de diferentes valores como strings JSON
Valores Un valor puede ser una string e incluso puede tener un JSONArray o cualquier objeto o simplemente constantes.
Instrumentos de cuerda

Las strings están rodeadas por comillas dobles («») y seguidas de dos puntos Unicode (:). Puede haber varios miembros y cada uno está separado por comas (,).

Los valores también están separados por comas (,) e incluyen lo siguiente. escapes de verdadero/falso/nulo/carácter o barra invertida común.

Cualquier string se puede cambiar a una array de bytes y cualquier array de bytes se puede convertir a una string fácilmente a través de las siguientes formas. Supongamos que la String que vamos a tomar es del patrón con los elementos básicos anteriores . Porque hoy en día cualquier servicio REST produce la salida en formato JSON. Si el patrón es de esa estructura compatible, podemos analizarlo fácilmente usando JSONParser. El siguiente conjunto de programas de muestra se puede utilizar para producir la salida ordenada de JSONArray.

Ejemplo 1

Java

import com.google.gson.JsonArray;
import com.google.gson.JsonParser;
import java.nio.charset.StandardCharsets;
  
public class Example1 {
    public static void main(String[] args)
    {
        String geekPortalUserDetails
            = "[{\"firstName\":\"GeekA\",\"Posts\":\"100\"},
        {
            \"firstName\":\"GeekB\",\"Posts\":\"150\"},
            {
                \"firstName\":\"GeekC\",\"Posts\":\"50\"}]";
  
                // string to byte[]
                byte[] userDetailsBytes
                    = geekPortalUserDetails.getBytes(
                        StandardCharsets.UTF_8);
  
                // converting the bytes to String
                String userDetailsBytesToStrings
                    = new String(userDetailsBytes,
                                 StandardCharsets.UTF_8);
                JsonParser jsonParser = new JsonParser();
  
                // As the byte array details contains
                // JSONArray elements, we need to parse the
                // output in the form of JsonArray
                JsonArray jsonArrayOutput
                    = (JsonArray)jsonParser.parse(
                        userDetailsBytesToStrings);
                System.out.println("Output : "
                                   + jsonArrayOutput);
            }
        }

La salida del programa:

output

 

Podemos embellecer y ver la salida de la siguiente manera. La salida está en formato JSON Array

 

Lo más importante al convertir una array de bytes a JSON es que la array de bytes debe ser del patrón para analizarse con JsonParser. Ahora veamos un ejemplo para un JsonObject 

Ejemplo 2

Java

import com.google.gson.*;
import java.nio.charset.StandardCharsets;
  
public class Example2 {
    public static void main(String[] args)
    {
  
        String geekPortalUserDetail
            = "{\"firstName\": \"GeekA\",\"last_name\": \"GeekA\", \"email_address\": \"geeka@gfg.com\"}";
  
        // string to byte[]
        byte[] userDetailsBytes
            = geekPortalUserDetail.getBytes(
                StandardCharsets.UTF_8);
  
        // converting the bytes to String
        String userDetailsBytesToStrings = new String(
            userDetailsBytes, StandardCharsets.UTF_8);
        JsonParser jsonParser = new JsonParser();
  
        // As the output is of the pattern of JsonObject, it
        // has to be converted in this way
        JsonObject jsonObjectOutput
            = (JsonObject)jsonParser.parse(
                userDetailsBytesToStrings);
        System.out.println("Output : " + jsonObjectOutput);
    }
}

Producción:

 

Podemos embellecer el mismo y comprobar

 

Varias API REST como https://api.exchangerate-api.com/v4/latest/USD producen la respuesta como JSONObject/JSONArray.

Ejemplo:

 

Podemos mantener estos datos como una array de bytes en la base de datos y, cuando sea necesario, podemos recuperarlos en formato JSON.

Razones:

Pocas API REST son gratuitas. Muchos son de pago y también difieren al llegar al conteo de api. Para evitar eso, en lugar de presionar la URL varias veces, obtenga la respuesta de la API REST y almacene los datos en la base de datos como una array de bytes (porque la respuesta será enorme y puede contener fotos/videos, etc.) también. Cuando necesitamos mostrar los datos, podemos obtener los datos de la array de bytes de la base de datos y analizarlos como los programas de muestra anteriores y obtenerlos como JSONArray/JSONObject.

Publicación traducida automáticamente

Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *