Re: [WebDNA] JSONStore Levels

This WebDNA talk-list message is from

2020


It keeps the original formatting.
numero = 115098
interpreted = N
texte = 2727 The more that we can work with json natively the better.=20 You have my vote :) Regards Stuart Tremain Pharoah Lane Software Suite 16, 20 Burlington Street Crows Nest NSW 2065 AUSTRALIA +612 8971 4431 > On 6 May 2020, at 8:40 pm, talk@webdna.us wrote: >=20 > =EF=BB=BFHello everyone! >=20 >=20 > With Josh (who is behind all the C++ code these last years), we spent some= time thinking about this. He made a proof of concept C++ app that gives the= below output when we feed it the JSON from Mike's post to the mailing list.= Is this useful? If this is acceptable, we can adapt the code into the WebDN= A source tree and have it store in the DB/table in that format. >=20 > page=3D1 > total_results=3D21 > total_pages=3D1 > results:1:popularity=3D1.936 > results:1:vote_count=3D7 > results:2:popularity=3D2.732 > results:2:vote_count=3D23 > results:3:popularity=3D12.088 > results:3:vote_count=3D75 > results:4:popularity=3D53.221 > results:4:vote_count=3D5 > results:5:popularity=3D7.001 > results:5:vote_count=3D31 > results:6:popularity=3D22.223 > results:6:vote_count=3D88 >=20 > Next version would have this fix built-in. >=20 > - chris >=20 >=20 >> On May 1, 2020, at 06:03, talk@webdna.us wrote: >>=20 >> Hi Mike. >>=20 >> Ah yes, I can see why you need to do it natively. >>=20 >> Sorry, I am out of silver bullets now :( >>=20 >>=20 >> Kind regards >>=20 >> Stuart Tremain >> Pharoah Lane Software >> AUSTRALIA >> webdna@plsoftware.com.au >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>>> On 1 May 2020, at 12:52, talk@webdna.us wrote: >>>=20 >>> Stuart, >>>=20 >>> I actually use this (Tom=E2=80=99s routine) as the basis of what I=E2=80= =99m doing now. The challenge I=E2=80=99m facing in my current project is t= hat the source JSON is quite large, and the specific data I need is near the= end of the data, nested in several layers of arrays. The parsing time is a= round 90 seconds. I need to speed that up. >>>=20 >>>=20 >>> Mike Davis >>>=20 >>>> On Apr 30, 2020, at 5:04 PM, talk@webdna.us wrote: >>>>=20 >>>> I am not sure if this is exactly what Tom wrote, but it is what I am us= ing. >>>>=20 >>>>=20 >>>> [!]------------------- Pass json as JSONRESULT ----------------- >>>> ------------------- Conversion table to strip non-breaking spaces -----= ------------ >>>> [/!][TABLE name=3DjsonClean&fields=3Dfrom,to] >>>> %C2 =20 >>>> %A0 =20 >>>> [/TABLE][!] >>>>=20 >>>> ------------------- Conversion table to facilitate spliting into key:va= lue pairs ----------------- >>>> [/!][TABLE name=3DjsonSplitConversions&fields=3Dfrom,to] >>>> | ~~~~ >>>> \" ^^^^ >>>> [/TABLE][!] >>>>=20 >>>> ------------------- Convert back after spliting into key:value pairs --= --------------- >>>> [/!][TABLE name=3DjsonSplitConversionsBack&fields=3Dfrom,to] >>>> " =20 >>>> ~~~~ | >>>> ^^^^ " >>>> [/TABLE][!] >>>>=20 >>>> ------------------- pass one - run the conversions ----------------- >>>> [/!][TEXT]JSONRESULT=3D[CONVERTWORDS table=3DjsonSplitConversions][conv= ertchars table=3DjsonClean][JSONRESULT][/convertchars][/CONVERTWORDS][/TEXT]= [!] >>>>=20 >>>> ------------------- pass two - add bar to just before each key:value pa= ir ----------------- >>>> [/!][TEXT]JSONRESULT=3D[GREP search=3D("[^"]*"):&replace=3D|\1=3D][JSON= RESULT][/GREP][/TEXT][!] >>>>=20 >>>> ------------------- pass three - list out the key:value pairs and assig= n them to text variables ----------------- >>>> [/!][LISTWORDS words=3D[url][JSONRESULT][/url]&delimiters=3D|{}][!] >>>> [/!][TEXT]THISVAL=3D[GREP search=3D(,$)&replace=3D][GETCHARS start=3D= 1&trim=3Dboth][CONVERTWORDS table=3DjsonSplitConversionsBack][word][/CONVERT= WORDS][/GETCHARS][/GREP][/TEXT][!] >>>> [/!][HIDEIF [url][THISVAL][/url]=3D][!] >>>> [/!][TEXT]JSON-[THISVAL][/TEXT][!] >>>> [/!][/HIDEIF][!] >>>> [/!][/LISTWORDS] >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>> Kind regards >>>>=20 >>>> Stuart Tremain >>>> Pharoah Lane Software >>>> AUSTRALIA >>>> webdna@plsoftware.com.au >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>> On 1 May 2020, at 08:10, talk@webdna.us wrote: >>>>>=20 >>>>> Hi Stuart, >>>>>=20 >>>>> I appreciate your answer and have a similar kludge (creative solution)= for my application. I was actually hoping to hear from Chris on this, in h= opes that the underlying JSON parser he is using can be passed dot notation i= n a similar way that Javascript uses to parse JSON objects. >>>>>=20 >>>>> Chris, are there any parameters we can send that are not in the docume= ntation? >>>>>=20 >>>>>=20 >>>>>=20 >>>>> Thanks, >>>>> Mike Davis >>>>>=20 >>>>>> On Apr 22, 2020, at 5:05 PM, talk@webdna.us wrote: >>>>>>=20 >>>>>> Hi MD >>>>>>=20 >>>>>> As we don=E2=80=99t know the email address of the sender anymore it w= ould be nice for us to know who we are addressing. >>>>>>=20 >>>>>> The JSONStore tag is a little confusing and what is also not well doc= umented is that you can store the data in a table eg: >>>>>>=20 >>>>>>=20 >>>>>> [JSONstore table=3DTRANSACTION&fields=3Derror:type,error:message] >>>>>> [STRIPERESPONSE] >>>>>> [/JSONstore] >>>>>>=20 >>>>>> Then search the table: >>>>>>=20 >>>>>> [SEARCH table=3DTRANSACTION&neERROR:TYPEdatarq=3D[BLANK]][!] >>>>>> [/!][FOUNDITEMS][!] >>>>>> [/!][TEXT]ERROR-TYPE=3D[ERROR:TYPE][/TEXT][!] >>>>>> [/!][TEXT]ERROR-MESSAGE=3D[ERROR:MESSAGE][/TEXT][!] >>>>>> [/!][/FOUNDITEMS][!] >>>>>> [/!][/SEARCH] >>>>>>=20 >>>>>>=20 >>>>>> What I found to be a useful exercise was to write to my specified db a= nd then open it and read the data to see what is being done with it. JSONsSt= ore will write the headers in a db >>>>>>=20 >>>>>> [JSONstore db=3Dlogs/stripelog.db] >>>>>> [STRIPERESPONSE] >>>>>> [/JSONstore] >>>>>>=20 >>>>>> As the data is often stored in an array you will have to do a bit of m= anipulation on the found items. >>>>>>=20 >>>>>> Here is a JSON function that may be useful to you. >>>>>>=20 >>>>>>=20 >>>>>> [!]------------------------------------------------------------------= ---- >>>>>> FUNCTION Name: WC-JSONvalue >>>>>> + Description: Pull out a value from a JSONobject >>>>>> + Input:=20 >>>>>> JSONobject =3D (the json to be parsed) - required >>>>>> JSONnode =3D (the node that we want the value of) - required >>>>>> + usage: [WC-JSONvalue JSONobject=3D[url][/url]&J= SONnode=3D] >>>>>> +Note: This function MUST receive valid JSONobject, make sure that= there are no line breaks before beginning of JSON, test your JSON validity h= ere: https://jsonlint.com >>>>>> ---------------------------------------------------------------------= - >>>>>> [/!][function name=3DWC-JSONvalue][!] >>>>>> [/!][text]rRETURN=3D[/text][!] >>>>>> [/!][text]rJSONobject=3D[/text][!] >>>>>> [/!][text]rJSONnode=3Dnull[/text][!] >>>>>> [/!][showif [url][params_string][/url]^JSONobject][text]rJSONobjec= t=3D[JSONobject][/text][/showif][!] >>>>>> [/!][showif [url][params_string][/url]^JSONnode][text]rJSONnode=3D= [JSONnode][/text][/showif][!] >>>>>> -------------------- Store the JSONobject in a table -----------= --------- >>>>>> [/!][JSONstore table=3DJSONdata][rJSONobject][/jsonstore][!] >>>>>> -------------------- Search the table -------------------- >>>>>> [/!][SEARCH table=3DJSONdata&ne[rJSONnode]data=3Dfind_all][!] >>>>>> [/!][founditems][!] >>>>>> [/!][text]rRETURN=3D[interpret][[rJSONnode]][/interpret][/= text][!] >>>>>> [/!][/founditems][!] >>>>>> [/!][/SEARCH][!] >>>>>> -------------------- Return the value -------------------- >>>>>> [/!][return][rRETURN][/return][!] >>>>>> [/!][/function] >>>>>>=20 >>>>>> You man need to play around with the json object to ensure that it is= valid json, I found that PayPal json did not validate. >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>> Kind regards >>>>>>=20 >>>>>> Stuart Tremain >>>>>> Pharoah Lane Software >>>>>> AUSTRALIA >>>>>> webdna@plsoftware.com.au >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>> On 23 Apr 2020, at 06:45, talk@webdna.us wrote: >>>>>>>=20 >>>>>>> Hi all, >>>>>>>=20 >>>>>>> I=E2=80=99m looking at the docs for the JSONStore context. It seems= that either the context is lacking functionality or the documentation is. I= do not see a way to access nested levels in the JSON, like can be done with= XML using path=3D0:1:2 for example. Seems like there should be a way to us= e dot notation to get at nested data without storing each array in a temp db= , then reparsing each level with JSONStore into another temp db, etc. >>>>>>>=20 >>>>>>> For example: I want to iterate the data sets in the =E2=80=9Cresult= s=E2=80=9D array into a database. I can use JSONStore to populate a table w= ith the fields: page, total_results, total_pages and results. Then I can s= earch that table and run JSONStore on the results field using another databa= se, but this gets a bit complicated when working with some other data, in wh= ich I need to access data that is 3 or 4 arrays deep. >>>>>>>=20 >>>>>>> Anyone solved this puzzle in a more efficient way yet? >>>>>>>=20 >>>>>>> { >>>>>>> "page":1, >>>>>>> "total_results":21, >>>>>>> "total_pages":1, >>>>>>> "results=E2=80=9D:[ >>>>>>> { >>>>>>> "popularity":1.936,"vote_count=E2=80=9D:7 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:2.732,"vote_count=E2=80=9D:23 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:12.088,"vote_count=E2=80=9D:75 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:53.221,"vote_count=E2=80=9D:5 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:7.001,"vote_count=E2=80=9D:31 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:22.223,"vote_count=E2=80=9D:88 >>>>>>> } >>>>>>> ] >>>>>>> } >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> MD--------------------------------------------------------- >>>>>>> This message is sent to you because you are subscribed to >>>>>>> the mailing list talk@webdna.us >>>>>>> To unsubscribe, E-mail to: talk-leave@webdna.us >>>>>>> archives: http://www.webdna.us/page.dna?numero=3D55 >>>>>>> Bug Reporting: support@webdna.us >>>>>>=20 >>>>>> --------------------------------------------------------- This messag= e is sent to you because you are subscribed to the mailing list talk@webdna.= us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webd= na.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us >>>>>=20 >>>>> --------------------------------------------------------- This message= is sent to you because you are subscribed to the mailing list talk@webdna.u= s To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdn= a.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us >>>>=20 >>>> --------------------------------------------------------- This message i= s sent to you because you are subscribed to the mailing list talk@webdna.us T= o unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.u= s/page.dna?numero=3D55 Bug Reporting: support@webdna.us >>>=20 >>> --------------------------------------------------------- This message i= s sent to you because you are subscribed to the mailing list talk@webdna.us T= o unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.u= s/page.dna?numero=3D55 Bug Reporting: support@webdna.us >>=20 >> --------------------------------------------------------- This message is= sent to you because you are subscribed to the mailing list talk@webdna.us T= o unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.u= s/page.dna?numero=3D55 Bug Reporting: support@webdna.us >=20 > --------------------------------------------------------- > This message is sent to you because you are subscribed to > the mailing list talk@webdna.us > To unsubscribe, E-mail to: talk-leave@webdna.us > archives: http://www.webdna.us/page.dna?numero=3D55 > Bug Reporting: support@webdna.us --------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us . Associated Messages, from the most recent to the oldest:

    
  1. Re: [WebDNA] JSONStore Levels (Stuart Tremain 2020)
  2. Re: [WebDNA] JSONStore Levels (Tom Duke 2020)
  3. Re: [WebDNA] JSONStore Levels (christophe.billiottet@webdna.us 2020)
  4. Re: [WebDNA] JSONStore Levels (Tom Duke 2020)
  5. Re: [WebDNA] JSONStore Levels (christophe.billiottet@webdna.us 2020)
  6. Re: [WebDNA] JSONStore Levels (christophe.billiottet@webdna.us 2020)
  7. Re: [WebDNA] JSONStore Levels (Michael Davis 2020)
  8. Re: [WebDNA] JSONStore Levels (Tom Duke 2020)
  9. Re: [WebDNA] JSONStore Levels (Michael Davis 2020)
  10. Re: [WebDNA] JSONStore Levels (Tom Duke 2020)
  11. Re: [WebDNA] JSONStore Levels (Stuart Tremain 2020)
  12. Re: [WebDNA] JSONStore Levels (christophe.billiottet@webdna.us 2020)
  13. RE: [WebDNA] JSONStore Levels ("Scott @ Itsula" 2020)
  14. Re: [WebDNA] JSONStore Levels (Stuart Tremain 2020)
  15. Re: [WebDNA] JSONStore Levels (Michael Davis 2020)
  16. Re: [WebDNA] JSONStore Levels (Stuart Tremain 2020)
  17. Re: [WebDNA] JSONStore Levels (Stuart Tremain 2020)
  18. Re: [WebDNA] JSONStore Levels (Michael Davis 2020)
  19. Re: [WebDNA] JSONStore Levels (Stuart Tremain 2020)
  20. [WebDNA] JSONStore Levels (Michael Davis 2020)
2727 The more that we can work with json natively the better.=20 You have my vote :) Regards Stuart Tremain Pharoah Lane Software Suite 16, 20 Burlington Street Crows Nest NSW 2065 AUSTRALIA +612 8971 4431 > On 6 May 2020, at 8:40 pm, talk@webdna.us wrote: >=20 > =EF=BB=BFHello everyone! >=20 >=20 > With Josh (who is behind all the C++ code these last years), we spent some= time thinking about this. He made a proof of concept C++ app that gives the= below output when we feed it the JSON from Mike's post to the mailing list.= Is this useful? If this is acceptable, we can adapt the code into the WebDN= A source tree and have it store in the DB/table in that format. >=20 > page=3D1 > total_results=3D21 > total_pages=3D1 > results:1:popularity=3D1.936 > results:1:vote_count=3D7 > results:2:popularity=3D2.732 > results:2:vote_count=3D23 > results:3:popularity=3D12.088 > results:3:vote_count=3D75 > results:4:popularity=3D53.221 > results:4:vote_count=3D5 > results:5:popularity=3D7.001 > results:5:vote_count=3D31 > results:6:popularity=3D22.223 > results:6:vote_count=3D88 >=20 > Next version would have this fix built-in. >=20 > - chris >=20 >=20 >> On May 1, 2020, at 06:03, talk@webdna.us wrote: >>=20 >> Hi Mike. >>=20 >> Ah yes, I can see why you need to do it natively. >>=20 >> Sorry, I am out of silver bullets now :( >>=20 >>=20 >> Kind regards >>=20 >> Stuart Tremain >> Pharoah Lane Software >> AUSTRALIA >> webdna@plsoftware.com.au >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>=20 >>>> On 1 May 2020, at 12:52, talk@webdna.us wrote: >>>=20 >>> Stuart, >>>=20 >>> I actually use this (Tom=E2=80=99s routine) as the basis of what I=E2=80= =99m doing now. The challenge I=E2=80=99m facing in my current project is t= hat the source JSON is quite large, and the specific data I need is near the= end of the data, nested in several layers of arrays. The parsing time is a= round 90 seconds. I need to speed that up. >>>=20 >>>=20 >>> Mike Davis >>>=20 >>>> On Apr 30, 2020, at 5:04 PM, talk@webdna.us wrote: >>>>=20 >>>> I am not sure if this is exactly what Tom wrote, but it is what I am us= ing. >>>>=20 >>>>=20 >>>> [!]------------------- Pass json as JSONRESULT ----------------- >>>> ------------------- Conversion table to strip non-breaking spaces -----= ------------ >>>> [/!][TABLE name=3DjsonClean&fields=3Dfrom,to] >>>> %C2 =20 >>>> %A0 =20 >>>> [/TABLE][!] >>>>=20 >>>> ------------------- Conversion table to facilitate spliting into key:va= lue pairs ----------------- >>>> [/!][TABLE name=3DjsonSplitConversions&fields=3Dfrom,to] >>>> | ~~~~ >>>> \" ^^^^ >>>> [/TABLE][!] >>>>=20 >>>> ------------------- Convert back after spliting into key:value pairs --= --------------- >>>> [/!][TABLE name=3DjsonSplitConversionsBack&fields=3Dfrom,to] >>>> " =20 >>>> ~~~~ | >>>> ^^^^ " >>>> [/TABLE][!] >>>>=20 >>>> ------------------- pass one - run the conversions ----------------- >>>> [/!][text]JSONRESULT=3D[CONVERTWORDS table=3DjsonSplitConversions][conv= ertchars table=3DjsonClean][JSONRESULT][/convertchars][/CONVERTWORDS][/TEXT]= [!] >>>>=20 >>>> ------------------- pass two - add bar to just before each key:value pa= ir ----------------- >>>> [/!][text]JSONRESULT=3D[GREP search=3D("[^"]*"):&replace=3D|\1=3D][JSON= RESULT][/GREP][/TEXT][!] >>>>=20 >>>> ------------------- pass three - list out the key:value pairs and assig= n them to text variables ----------------- >>>> [/!][LISTWORDS words=3D[url][JSONRESULT][/url]&delimiters=3D|{}][!] >>>> [/!][text]THISVAL=3D[GREP search=3D(,$)&replace=3D][GETCHARS start=3D= 1&trim=3Dboth][CONVERTWORDS table=3DjsonSplitConversionsBack][word][/CONVERT= WORDS][/GETCHARS][/GREP][/TEXT][!] >>>> [/!][HIDEIF [url][THISVAL][/url]=3D][!] >>>> [/!][text]JSON-[THISVAL][/TEXT][!] >>>> [/!][/HIDEIF][!] >>>> [/!][/LISTWORDS] >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>> Kind regards >>>>=20 >>>> Stuart Tremain >>>> Pharoah Lane Software >>>> AUSTRALIA >>>> webdna@plsoftware.com.au >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>=20 >>>>> On 1 May 2020, at 08:10, talk@webdna.us wrote: >>>>>=20 >>>>> Hi Stuart, >>>>>=20 >>>>> I appreciate your answer and have a similar kludge (creative solution)= for my application. I was actually hoping to hear from Chris on this, in h= opes that the underlying JSON parser he is using can be passed dot notation i= n a similar way that Javascript uses to parse JSON objects. >>>>>=20 >>>>> Chris, are there any parameters we can send that are not in the docume= ntation? >>>>>=20 >>>>>=20 >>>>>=20 >>>>> Thanks, >>>>> Mike Davis >>>>>=20 >>>>>> On Apr 22, 2020, at 5:05 PM, talk@webdna.us wrote: >>>>>>=20 >>>>>> Hi MD >>>>>>=20 >>>>>> As we don=E2=80=99t know the email address of the sender anymore it w= ould be nice for us to know who we are addressing. >>>>>>=20 >>>>>> The JSONStore tag is a little confusing and what is also not well doc= umented is that you can store the data in a table eg: >>>>>>=20 >>>>>>=20 >>>>>> [JSONstore table=3DTRANSACTION&fields=3Derror:type,error:message] >>>>>> [STRIPERESPONSE] >>>>>> [/JSONstore] >>>>>>=20 >>>>>> Then search the table: >>>>>>=20 >>>>>> [SEARCH table=3DTRANSACTION&neERROR:TYPEdatarq=3D[BLANK]][!] >>>>>> [/!][founditems][!] >>>>>> [/!][text]ERROR-TYPE=3D[ERROR:TYPE][/TEXT][!] >>>>>> [/!][text]ERROR-MESSAGE=3D[ERROR:MESSAGE][/TEXT][!] >>>>>> [/!][/FOUNDITEMS][!] >>>>>> [/!][/SEARCH] >>>>>>=20 >>>>>>=20 >>>>>> What I found to be a useful exercise was to write to my specified db a= nd then open it and read the data to see what is being done with it. JSONsSt= ore will write the headers in a db >>>>>>=20 >>>>>> [JSONstore db=3Dlogs/stripelog.db] >>>>>> [STRIPERESPONSE] >>>>>> [/JSONstore] >>>>>>=20 >>>>>> As the data is often stored in an array you will have to do a bit of m= anipulation on the found items. >>>>>>=20 >>>>>> Here is a JSON function that may be useful to you. >>>>>>=20 >>>>>>=20 >>>>>> [!]------------------------------------------------------------------= ---- >>>>>> FUNCTION Name: WC-JSONvalue >>>>>> + Description: Pull out a value from a JSONobject >>>>>> + Input:=20 >>>>>> JSONobject =3D (the json to be parsed) - required >>>>>> JSONnode =3D (the node that we want the value of) - required >>>>>> + usage: [WC-JSONvalue JSONobject=3D[url][/url]&J= SONnode=3D] >>>>>> +Note: This function MUST receive valid JSONobject, make sure that= there are no line breaks before beginning of JSON, test your JSON validity h= ere: https://jsonlint.com >>>>>> ---------------------------------------------------------------------= - >>>>>> [/!][function name=3DWC-JSONvalue][!] >>>>>> [/!][text]rRETURN=3D[/text][!] >>>>>> [/!][text]rJSONobject=3D[/text][!] >>>>>> [/!][text]rJSONnode=3Dnull[/text][!] >>>>>> [/!][showif [url][params_string][/url]^JSONobject][text]rJSONobjec= t=3D[JSONobject][/text][/showif][!] >>>>>> [/!][showif [url][params_string][/url]^JSONnode][text]rJSONnode=3D= [JSONnode][/text][/showif][!] >>>>>> -------------------- Store the JSONobject in a table -----------= --------- >>>>>> [/!][JSONstore table=3DJSONdata][rJSONobject][/jsonstore][!] >>>>>> -------------------- Search the table -------------------- >>>>>> [/!][SEARCH table=3DJSONdata&ne[rJSONnode]data=3Dfind_all][!] >>>>>> [/!][founditems][!] >>>>>> [/!][text]rRETURN=3D[interpret][[rJSONnode]][/interpret][/= text][!] >>>>>> [/!][/founditems][!] >>>>>> [/!][/SEARCH][!] >>>>>> -------------------- Return the value -------------------- >>>>>> [/!][return][rRETURN][/return][!] >>>>>> [/!][/function] >>>>>>=20 >>>>>> You man need to play around with the json object to ensure that it is= valid json, I found that PayPal json did not validate. >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>> Kind regards >>>>>>=20 >>>>>> Stuart Tremain >>>>>> Pharoah Lane Software >>>>>> AUSTRALIA >>>>>> webdna@plsoftware.com.au >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>=20 >>>>>>> On 23 Apr 2020, at 06:45, talk@webdna.us wrote: >>>>>>>=20 >>>>>>> Hi all, >>>>>>>=20 >>>>>>> I=E2=80=99m looking at the docs for the JSONStore context. It seems= that either the context is lacking functionality or the documentation is. I= do not see a way to access nested levels in the JSON, like can be done with= XML using path=3D0:1:2 for example. Seems like there should be a way to us= e dot notation to get at nested data without storing each array in a temp db= , then reparsing each level with JSONStore into another temp db, etc. >>>>>>>=20 >>>>>>> For example: I want to iterate the data sets in the =E2=80=9Cresult= s=E2=80=9D array into a database. I can use JSONStore to populate a table w= ith the fields: page, total_results, total_pages and results. Then I can s= earch that table and run JSONStore on the results field using another databa= se, but this gets a bit complicated when working with some other data, in wh= ich I need to access data that is 3 or 4 arrays deep. >>>>>>>=20 >>>>>>> Anyone solved this puzzle in a more efficient way yet? >>>>>>>=20 >>>>>>> { >>>>>>> "page":1, >>>>>>> "total_results":21, >>>>>>> "total_pages":1, >>>>>>> "results=E2=80=9D:[ >>>>>>> { >>>>>>> "popularity":1.936,"vote_count=E2=80=9D:7 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:2.732,"vote_count=E2=80=9D:23 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:12.088,"vote_count=E2=80=9D:75 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:53.221,"vote_count=E2=80=9D:5 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:7.001,"vote_count=E2=80=9D:31 >>>>>>> }, >>>>>>> { >>>>>>> "popularity=E2=80=9D:22.223,"vote_count=E2=80=9D:88 >>>>>>> } >>>>>>> ] >>>>>>> } >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> MD--------------------------------------------------------- >>>>>>> This message is sent to you because you are subscribed to >>>>>>> the mailing list talk@webdna.us >>>>>>> To unsubscribe, E-mail to: talk-leave@webdna.us >>>>>>> archives: http://www.webdna.us/page.dna?numero=3D55 >>>>>>> Bug Reporting: support@webdna.us >>>>>>=20 >>>>>> --------------------------------------------------------- This messag= e is sent to you because you are subscribed to the mailing list talk@webdna.= us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webd= na.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us >>>>>=20 >>>>> --------------------------------------------------------- This message= is sent to you because you are subscribed to the mailing list talk@webdna.u= s To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdn= a.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us >>>>=20 >>>> --------------------------------------------------------- This message i= s sent to you because you are subscribed to the mailing list talk@webdna.us T= o unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.u= s/page.dna?numero=3D55 Bug Reporting: support@webdna.us >>>=20 >>> --------------------------------------------------------- This message i= s sent to you because you are subscribed to the mailing list talk@webdna.us T= o unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.u= s/page.dna?numero=3D55 Bug Reporting: support@webdna.us >>=20 >> --------------------------------------------------------- This message is= sent to you because you are subscribed to the mailing list talk@webdna.us T= o unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.u= s/page.dna?numero=3D55 Bug Reporting: support@webdna.us >=20 > --------------------------------------------------------- > This message is sent to you because you are subscribed to > the mailing list talk@webdna.us > To unsubscribe, E-mail to: talk-leave@webdna.us > archives: http://www.webdna.us/page.dna?numero=3D55 > Bug Reporting: support@webdna.us --------------------------------------------------------- This message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: support@webdna.us . Stuart Tremain

DOWNLOAD WEBDNA NOW!

Top Articles:

Talk List

The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...

Related Readings:

Site Builder & IE Mac (2004) Cart passing in URL... (2004) WebCat2b13MacPlugIn - [showif][search][/showif] (1997) Freeze (2003) Not reading code (1997) [ot] ShowIf & HideIf Question (1998) Cold Fusion Buster (1997) File Upload (1997) Hiding HTML and page breaks (1997) Squares instead of spaces (2001) shipcost (1997) TCPConnect and Sandbox (2003) RAM variables (1997) Useful snippet (2003) Cart Database (1999) [OT] Xserve (2002) [WebDNA] WebDNA7 site randomly dropping tags (2011) WC2b15 - [HTMLx]...[/HTMLx] problems (1997) Emailer (WebCat2) (1997) Hiding Email Addresses (2003)