Json and list
Posted: Tue Nov 05, 2019 10:30 pm
Hi
I have created a wam which create a JSON respons (see below) I have tested the wam in POSTMAn and it Works fine.
I have then created a servermodule and a VL-web page to test the Wam. Here are the code from my Servermodule:
#HttpRequest.Dopost Url(#Url)
If (#HttpRequest.Response.IsSuccessfulRequest)
* Feed the HTTP Response to the JsonReader object
#Reader.SetSourceHttpResponse Httpresponse(#HttpRequest.Response)
* Check if we get a positive response from the server
If (#HttpRequest.Response.IsSuccessHttpStatusCode)
* Get the result (translated) text
#TranslatedText := #Reader.ReadStringWithPath( 'statuscode' )
#RequestOK := True
#Reader.BeginArrayWithPath Path("options_list") Found(#OptionerfundetOk)
#LoopCount := #Reader.GetChildCount
Begin_Loop Using(#STD_NUM) To(#LoopCount)
#Reader.BeginObjectAtIndex Index(#STD_NUM)
#SEOOPT := #Reader.ReadNumberWithName( 'option' )
#SEOJN := #Reader.ReadNumberWithName( 'option_value' )
Add_Entry To_List(#opt_list)
End_Loop
I works fine. The LoopCount is set to 60, as which is the number of entries in the Options_list, But when I debug the servermodul it is alway the values of entry number 1 i get in my opt_list (60 entries).
What am I missing? Is it the JSON from the WAM that is defined wrong or??
Here is the JSON answer:
{"statuscode":"000000", "statustext":"STATUS OK", "options_list": [
{ "option": "01", "option_value": "1" } ,
{ "option": "02", "option_value": "1" } ,
{ "option": "03", "option_value": "1" } ,
{ "option": "04", "option_value": "1" } ,
{ "option": "05", "option_value": "1" } ,
{ "option": "06", "option_value": "1" } ,
{ "option": "07", "option_value": "1" } ,
{ "option": "08", "option_value": "0" } ,
{ "option": "09", "option_value": "0" } ,
{ "option": "10", "option_value": "0" } ,
{ "option": "11", "option_value": "0" } ,
{ "option": "12", "option_value": "0" } ,
{ "option": "13", "option_value": "0" } ,
{ "option": "14", "option_value": "0" } ,
{ "option": "15", "option_value": "0" } ,
{ "option": "16", "option_value": "0" } ,
{ "option": "17", "option_value": "0" } ,
{ "option": "18", "option_value": "0" } ,
{ "option": "19", "option_value": "0" } ,
{ "option": "20", "option_value": "0" } ,
{ "option": "21", "option_value": "1" } ,
{ "option": "22", "option_value": "1" } ,
{ "option": "23", "option_value": "1" } ,
{ "option": "24", "option_value": "0" } ,
{ "option": "25", "option_value": "0" } ,
{ "option": "26", "option_value": "0" } ,
{ "option": "27", "option_value": "0" } ,
{ "option": "28", "option_value": "0" } ,
{ "option": "29", "option_value": "0" } ,
{ "option": "30", "option_value": "0" } ,
{ "option": "31", "option_value": "0" } ,
{ "option": "32", "option_value": "0" } ,
{ "option": "33", "option_value": "1" } ,
{ "option": "34", "option_value": "0" } ,
{ "option": "35", "option_value": "0" } ,
{ "option": "36", "option_value": "1" } ,
{ "option": "37", "option_value": "1" } ,
{ "option": "40", "option_value": "1" } ,
{ "option": "41", "option_value": "1" } ,
{ "option": "42", "option_value": "1" } ,
{ "option": "50", "option_value": "0" } ,
{ "option": "65", "option_value": "0" } ,
{ "option": "71", "option_value": "1" } ,
{ "option": "72", "option_value": "1" } ,
{ "option": "73", "option_value": "0" } ,
{ "option": "74", "option_value": "0" } ,
{ "option": "75", "option_value": "1" } ,
{ "option": "76", "option_value": "1" } ,
{ "option": "77", "option_value": "1" } ,
{ "option": "80", "option_value": "1" } ,
{ "option": "81", "option_value": "0" } ,
{ "option": "82", "option_value": "0" } ,
{ "option": "83", "option_value": "1" } ,
{ "option": "84", "option_value": "0" } ,
{ "option": "93", "option_value": "1" } ,
{ "option": "94", "option_value": "1" } ,
{ "option": "96", "option_value": "1" } ,
{ "option": "97", "option_value": "1" } ,
{ "option": "98", "option_value": "1" } ,
{ "option": "99", "option_value": "1" } ] }
I have created a wam which create a JSON respons (see below) I have tested the wam in POSTMAn and it Works fine.
I have then created a servermodule and a VL-web page to test the Wam. Here are the code from my Servermodule:
#HttpRequest.Dopost Url(#Url)
If (#HttpRequest.Response.IsSuccessfulRequest)
* Feed the HTTP Response to the JsonReader object
#Reader.SetSourceHttpResponse Httpresponse(#HttpRequest.Response)
* Check if we get a positive response from the server
If (#HttpRequest.Response.IsSuccessHttpStatusCode)
* Get the result (translated) text
#TranslatedText := #Reader.ReadStringWithPath( 'statuscode' )
#RequestOK := True
#Reader.BeginArrayWithPath Path("options_list") Found(#OptionerfundetOk)
#LoopCount := #Reader.GetChildCount
Begin_Loop Using(#STD_NUM) To(#LoopCount)
#Reader.BeginObjectAtIndex Index(#STD_NUM)
#SEOOPT := #Reader.ReadNumberWithName( 'option' )
#SEOJN := #Reader.ReadNumberWithName( 'option_value' )
Add_Entry To_List(#opt_list)
End_Loop
I works fine. The LoopCount is set to 60, as which is the number of entries in the Options_list, But when I debug the servermodul it is alway the values of entry number 1 i get in my opt_list (60 entries).
What am I missing? Is it the JSON from the WAM that is defined wrong or??
Here is the JSON answer:
{"statuscode":"000000", "statustext":"STATUS OK", "options_list": [
{ "option": "01", "option_value": "1" } ,
{ "option": "02", "option_value": "1" } ,
{ "option": "03", "option_value": "1" } ,
{ "option": "04", "option_value": "1" } ,
{ "option": "05", "option_value": "1" } ,
{ "option": "06", "option_value": "1" } ,
{ "option": "07", "option_value": "1" } ,
{ "option": "08", "option_value": "0" } ,
{ "option": "09", "option_value": "0" } ,
{ "option": "10", "option_value": "0" } ,
{ "option": "11", "option_value": "0" } ,
{ "option": "12", "option_value": "0" } ,
{ "option": "13", "option_value": "0" } ,
{ "option": "14", "option_value": "0" } ,
{ "option": "15", "option_value": "0" } ,
{ "option": "16", "option_value": "0" } ,
{ "option": "17", "option_value": "0" } ,
{ "option": "18", "option_value": "0" } ,
{ "option": "19", "option_value": "0" } ,
{ "option": "20", "option_value": "0" } ,
{ "option": "21", "option_value": "1" } ,
{ "option": "22", "option_value": "1" } ,
{ "option": "23", "option_value": "1" } ,
{ "option": "24", "option_value": "0" } ,
{ "option": "25", "option_value": "0" } ,
{ "option": "26", "option_value": "0" } ,
{ "option": "27", "option_value": "0" } ,
{ "option": "28", "option_value": "0" } ,
{ "option": "29", "option_value": "0" } ,
{ "option": "30", "option_value": "0" } ,
{ "option": "31", "option_value": "0" } ,
{ "option": "32", "option_value": "0" } ,
{ "option": "33", "option_value": "1" } ,
{ "option": "34", "option_value": "0" } ,
{ "option": "35", "option_value": "0" } ,
{ "option": "36", "option_value": "1" } ,
{ "option": "37", "option_value": "1" } ,
{ "option": "40", "option_value": "1" } ,
{ "option": "41", "option_value": "1" } ,
{ "option": "42", "option_value": "1" } ,
{ "option": "50", "option_value": "0" } ,
{ "option": "65", "option_value": "0" } ,
{ "option": "71", "option_value": "1" } ,
{ "option": "72", "option_value": "1" } ,
{ "option": "73", "option_value": "0" } ,
{ "option": "74", "option_value": "0" } ,
{ "option": "75", "option_value": "1" } ,
{ "option": "76", "option_value": "1" } ,
{ "option": "77", "option_value": "1" } ,
{ "option": "80", "option_value": "1" } ,
{ "option": "81", "option_value": "0" } ,
{ "option": "82", "option_value": "0" } ,
{ "option": "83", "option_value": "1" } ,
{ "option": "84", "option_value": "0" } ,
{ "option": "93", "option_value": "1" } ,
{ "option": "94", "option_value": "1" } ,
{ "option": "96", "option_value": "1" } ,
{ "option": "97", "option_value": "1" } ,
{ "option": "98", "option_value": "1" } ,
{ "option": "99", "option_value": "1" } ] }