Irwin1985 / JSONFox

JSONFox is a free JSON parser written in Visual FoxPro 9.0
59 stars 34 forks source link

Impasse con Enteros #55

Closed jhernancanom closed 6 months ago

jhernancanom commented 8 months ago

Buen día, colegas.

Estoy ejecutando el PRG que adjunto, el cual contiene un JSON en el que uno de sus campos es CELULAR, y que en dos de sus registros contiene:

"celular": 301,

"celular": 3014637360,

Recordemos que en Colombia los números de celular son de diez dígitos, y que el dígito inicial es 3.

Cuando ejecuto

cJson = _Screen.json.CursorToJson("qEmployees")

se genera un DBF con la sgte estructura (ver imagen), donde vemos que tanto Celular como Cedula (y otros) son de tipo Integer (entero).

En la ayuda de VFP9 encuentro que los límites inferior y superior de este tipo de datos son:

from -2147483647 to 2147483647

y observemos que entonces un celular no cumple para que sea de tipo Integer.

Al ejecutar con

do JSONFox.app

no he podido darme cuenta del por qué no se procesan todos los campos de un segundo registro, ni del error que se presenta.

Al ejecutar con

do .\SRC\MAIN.PRG

sí he podido darme cuenta del error que se presenta, y lo muestro en una de las imágenes.

Numeric overflow Desbordamiento numérico

lo cual es consecuente con que el tipo de dato sea Entero y el valor sea de diez dígitos empezando por 3.

Quisiera saber si hay forma de solucionar este impasse.

Como propuesta alternativa considero q pudiera abrirse la posibilidad a que uno tenga un DBF o cursor --ya creado y/o abierto-- con la estructura que uno necesite, de manera q uno pueda usar diversos tipos de datos numéricos que nos permitan evitar el límite de los Enteros (tenemos por ejm Numeric, Float y Double).

((no me está permitiendo adjuntar un .PRG y varias imágenes .PNG, ni siquiera como .ZIP))

Irwin1985 commented 7 months ago

Hola @jhernancanom siento responder tan tarde. Ya he revisado tu caso (gracias por las muestras y ejemplos) y resuelto el problema. Actualiza JsonFox.app y prueba nuevamente a ver si todo marcha bien.