JSONParse
Analiza texto como datos JSON y mantiene la representación JSON analizada en memoria para que pueda reutilizarla con otras funciones JSON.
Formato
JSONParse ( json )
Parámetros
json
- any text expression or field that contains a JSON object or array.
Tipo de datos devuelto
texto
Se origina en
22.0
Descripción
JSONParse evalúa primero la expresión de texto json
de entrada; a continuación, analiza el texto JSON y almacena en la memoria caché una representación binaria. Cuando JSONParse establece una variable, un parámetro de guión o se utiliza en otros cálculos, esta representación binaria está disponible para que otras funciones JSON procesen los datos analizados.
JSONParse devuelve el texto original sin cambios si json
es válido o un mensaje de error si no lo es. En caso de que JSON no sea válido, JSONParse devuelve un mensaje de error que comienza por "?", seguido de detalles sobre el error de análisis, de forma similar a otras funciones JSON.
Consulte Optimización del rendimiento de JSON.
Notas
-
Para operaciones JSON únicas, el uso de otras funciones JSON directamente en el texto puede funcionar tan bien como usar primero JSONParse.
-
Puede utilizar la función función JSONParsedState para comprobar si los datos JSON se han analizado correctamente y son válidos.
Ejemplo 1 - Análisis sintáctico básico de un objeto JSON simple
JSONParse ( "{ \"name\": \"Alea\", \"age\": 30, \"city\": \"Nueva York\" }" )
devuelve { "name": "Alea", "age": 30, "city": "Nueva York" }, que es la representación textual sin cambios de los datos JSON.
Si se establece en una variable $$Contact, la representación binaria se almacena en la memoria caché y está disponible para los cálculos que utilicen $$Contact.
Let ( [
$$Contact = JSONParse ( "{ \"name\": \"Alea\", \"age\": 30, \"city\": \"Nueva York\" }" )
] ;
$$Contact
)
Si el contenido JSON no es válido, JSONParse analiza los datos, pero devuelve un mensaje de error. Por ejemplo, si falta la primera coma en el contenido JSON anterior, JSONParse devuelve:
? * Línea 1, Columna 18
Falta ',' o '}' en la declaración de objeto
Ejemplo 2 - Análisis sintáctico de varios objetos JSON
Utiliza JSONParse para analizar el texto JSON en $JSONText1 y $JSONText2; a continuación, recupera los elementos de las variables $ParsedJSON1 y $ParsedJSON2 sin necesidad de volver a analizar los datos JSON.
Establecer variable[ $ParsedJSON1 ; Valor: JSONParse ( $JSONText1 ) ]
Establecer variable [ $ParsedJSON2 ; Valor: JSONParse ( $JSONText2 ) ]
Establecer variable [ $name ; Valor: JSONGetElement ( $ParsedJSON1 ; "nombre" ) ]
Establecer variable [ $id ; Valor: JSONGetElement ( $ParsedJSON2 ; "id" ) ]
Establecer variable [ $category ; Valor: JSONGetElement ( $ParsedJSON1 ; "categoría" ) ]
Ejemplo 3 - Comprobación de errores y uso de JSON analizado en un bucle
Muestra la comprobación de errores y cómo utilizar JSONParse para mejorar el rendimiento cuando se procesan varios elementos de los mismos datos JSON en un bucle. $$JSON contiene el texto JSON del Datos de JSON de ejemplo. Después de que el guión analice $$JSON, comprueba si el contenido JSON analizado es válido (cuando la función función JSONParsedState devuelve un valor positivo). Si es válido, el guión recorre la matriz panadería.producto
y obtiene los valores de los datos JSON analizados.
Establecer variable [ $ParsedJSON ; Valor: JSONParse ( $$JSON ) ]
If [ JSONParsedState ( $ParsedJSON ) > 0 ]
# JSON es válido. Utilice el contenido JSON analizado para varias operaciones. Establecer variable [ $ProductCount ; Valor: ValueCount ( JSONListKeys ( $ParsedJSON ; "panadería.producto" ) ) ]
Establecer variable [ $i ; Valor: 0 ]
Loop [ Flush: Siempre]
Establecer variable [ $Product ; Valor: JSONGetElement ( $ParsedJSON ; "panadería.producto[" & $i & "]" ) ]
Establecer variable [ $ProductName ; Valor: JSONGetElement ( $Product ; "nombre" ) ]
Establecer variable [ $ProductPrice ; Valor: JSONGetElement ( $Product ; "precio" ) ]
# Procesar datos de productos...
Establecer variable [ $i ; Valor: $i + 1 ]
Exit Loop If [ $i ≥ $ProductCount ]
End Loop
Else
# Gestionar error de análisis de JSON
Mostrar cuadro de diálogo personalizado [ "Error de JSON" ; $ParsedJSON ]
End If