Happy New Year Everyone!
I see lots of information about JSON. I was wondering if there was function or sample code that can read JSON response and store to an array?
Thank you!
JSON response
Re: JSON response
Try with
Code: Select all
Function MyJson( cStr )
local hHash
local nLen
nLen := hb_JsonDecode( cStr, @hHash )
if !Empty( nLen )
XBrowser hHash Setup ( oBrw:AutoFit() )
endif
Return nil
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
- cdmmaui
- Posts: 653
- Joined: Fri Oct 28, 2005 9:53 am
- Location: The Woodlands - Dallas - Scottsdale - London
- Contact:
Re: JSON response
Dear Cristobal,
Thank you! Do you have an example that would load to an array?
Sincerely,
Thank you! Do you have an example that would load to an array?
Sincerely,
Re: JSON response
verily hb_JsonDecode return the type based on text, the code
prints:
Code: Select all
proc testJSON(cStr)
LOCAL r := hb_jsonDecode(cStr)
? cStr, "-->", r, "("+valtype(r)+")"
proc main()
testJSON('undefined')
testJSON('true')
testJSON('54')
testJSON('"aa"')
testJSON('{"a":4}')
testJSON('[1,2,3]')
Code: Select all
undefined --> NIL (U)
true --> .T. (L)
54 --> 54 (N)
"aa" --> aa (C)
{"a":4} --> (H)
[1,2,3] --> (A)
Re: JSON response
The value of a JSON file is the data encoded in it. Usually, you send a json text, and receive back a response.
Now cRet contains all of the values. You can add them to an array using:
Who ever supplies the data will give you the identifiers for their JSON fields and the structure. I hope this helps.
Tim
Code: Select all
aInfo := { }
cJson :='{"vin":"' + cVin + '"}'
oHttp:Send(cJson)
cRet := ""
cRtext := oHttp:responseText
nLen := hb_jsondecode( cRtext, @cRet )
Code: Select all
AADD( aInfo, "LAST REPORTED SERVICES:")
FOR EACH o IN cRet["serviceHistory"]["serviceCategories"]
SC1 := o["serviceName"]
SC2 := o["dateOfLastService"]
nRetItm := 0
IF HHasKey( o, "odometerOfLastService" )
nRetItm := o["odometerOfLastService"]
ENDIF
SC3 := STR( nRetItm ) //HB_HGETDEF( o, "odometerOfLastService", 0 ),8)
aadd( aInfo, "> " + SC1 + " performed on " + SC2 + " Odometer: " + SC3 )
NEXT
Tim
Tim Stone
http://www.MasterLinkSoftware.com
timstone@masterlinksoftware.com
Using: FWH 19.06 with Harbour 3.2.0 / Microsoft Visual Studio Community 2019
http://www.MasterLinkSoftware.com
timstone@masterlinksoftware.com
Using: FWH 19.06 with Harbour 3.2.0 / Microsoft Visual Studio Community 2019