Crear json a Partir de otro json – Claris FileMaker
Esta función es para aquellos que desean simplificar y mejorar la legibilidad de datos en formato JSON. Al crear un nuevo JSON a partir de uno existente, podrás organizar la información de manera más clara y eficiente. Esto es esencial para desarrolladores y usuarios que buscan una representación más ordenada de los datos en sus aplicaciones y proyectos. Con esta función, podrás optimizar la estructura de tu JSON y asegurarte de que sea más fácil de entender y trabajar. Simplifica tu proceso de manipulación de datos con esta herramienta versátil.
Nombre : ParseaJsonFromJson
Parámetros: json
Ejemplo: ParseaJsonFromJson( json )
¡Dona Conviértete en héroe!
/* Descripción: Esta función parsea o crea un JSON partiendo de otro JSON. NOTA: Formato de JSON que acepta es { "cliente": [ { "_id": "6254348ea30cb38e0a7415dd", "name": "Pepito Perez", "entity": "562a40f4d7e22e6744836c77", "DNI": "XXXXXXXB", "creationDate": "2022-04-11T14:00:46.731Z", "ccc": " XXXXXXXB" }, { "_id": "6254348ea30cb38e0a7415da", "name": "Menganito Perez", "entity": "562a40f4d7e22e6744836ce7", "DNI": "XXXXXXXC", "creationDate": "2023-12-11T14:00:46.731Z", "ccc": " XXXXXXXC" }, ] } */ Let ( [ _res = "OK"; ~ts = While ( [ ~dato = ""; ~jsonNew = "" ; ~i = 0; ~e = 0; ~JSON = json; ~creationDate = ""; ~amount = ""; ~shortName = ""; ~count = $numReg ; ~count2 = "" ]; ~i < ~count ; [ //cogemos el registro en el JSON segun su posición ~dato = JSONGetElement ( ~JSON ; "cliente["&~i&"]" ); //una vez que tenemos el registro, guardamos en variable ~creationDate = JSONGetElement ( ~dato ; ".creationDate" ); ~amount = Round ( Substitute ( JSONGetElement ( ~dato ; ".amount" ) ; "." ; "," ) ; 2 ); ~shortName = JSONGetElement ( ~dato ; ".shortName" ); ~id = JSONGetElement ( ~dato ; "._id" ); ~i = ~i + 1; //cuando es la primera vuelta el $$JSON esta vacio entonces ~count2 sera 0, co lo cual va a entrar en el primer caso de abajo //cuando $$JSON tiene contenido es decir a partir de la segunda vuelta, entra en el segundo caso y va creando registro segun la posición que le indiquemos en el count2 ~count2 = ValueCount ( JSONListKeys ( $$JSON ; "" ) ); $$JSON = Case ( PatternCount ( ~creationDate ; "?" ) > 0 or PatternCount ( ~amount ; "?" ) > 0 or PatternCount ( ~shortName ; "?" ) > 0 or PatternCount ( ~id ; "?" ) > 0 ; $$JSON ; IsEmpty ( $$JSON ) ; JSONSetElement ( "[]" ; [ "["&~i-1&"].timeStamp" ; ~creationDate ; JSONString ] ; [ "["&~i-1&"].amount" ; ~amount ; JSONString ] ; [ "["&~i-1&"].shortName" ; ~shortName ; JSONString ] ; [ "["&~i-1&"]._id" ; ~id ; JSONString ]; [ "["&~i-1&"]._index" ; "0" ; JSONString ] ); JSONSetElement ( $$JSON ; [ "["&~count2&"].timeStamp" ; ~creationDate ; JSONString ] ; [ "["&~count2&"].amount" ; ~amount ; JSONString ] ; [ "["&~count2&"].shortName" ; ~shortName ; JSONString ] ; [ "["&~count2&"]._id" ; ~id ; JSONString ]; [ "["&~count2&"]._index" ; ~count2 ; JSONString ] ) ) ]; JSONFormatElements ( $$JSON ) )
¡Dona Conviértete en héroe!