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:
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