Re: [WebDNA] WebDNA development

This WebDNA talk-list message is from

2017


It keeps the original formatting.
numero = 113742
interpreted = N
texte = 1337 --001a1144db7eb7a443055ecfcb07 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Chris, Hi - finally coming back to this. The [convertwords] idea does not work as each node in the table / database created by [jsonstore] is added as a field. So we don't have a 'from,to' field structure. I also can't seem to use [listfields] with a table. So the only option if you don't know the structure of the JSONobject is to use [jsonstore] to create a database on disk and then use [listfields] on that to traverse the JSONobject. Something like this is needed just to see the values from the JSONobject [jsonstore db=3Djsonparse.db]JSONobject[/jsonstore] [listfields db=3Djsonparse.db] [showif [index]=3D1] [text]node-1-name=3D[fieldname][/text] [/showif] [/listfields] [search db=3Djsonparse.db&ne[node-1-name]data=3Dfind_all][founditems] [listfields db=3Djsonparse.db] [fieldname]=3D[interpret][[fieldname]][/interpret] [/listfields] [/founditems][/search] The 'jsonparse.db' then has to be zero'd out after each [jsonstore], or new data get appended to it. Alternatively we name the database something like jsonparse-[cart].db to ensure they are unique, but we end up littering the disk with databases. In the context of dealing with json from an api or ajax call it seems like a lot of overhead to traverse a json response. Take care - Tom =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Digital Revolutionaries 1st Floor, Castleriver House 14-15 Parliament Street Temple Bar,Dublin 2 Ireland ---------------------------------------------- [t]: + 353 1 4403907 [e]: [w]: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D On 6 March 2017 at 10:21, wrote: > Hi Tom! I suppose you could try something like this: first, create the > table, something like this should work fine > > [JSONstore table=3DtabJSONPARSE] > JSONobject > [/JSONstore] > > you do not need to know the exact structure of the incoming JSON response= , > WebDNA will do it for you (I have personally not tested with a table, but > it does with a db) > > Then, you can use [convertwords]: > > [convertwords table=3DtabJSONPARSE]error:type and > error:message[/convertwords] > > This should work=E2=80=A6 > > - chris > > > > On Mar 4, 2017, at 16:59, Tom Duke wrote: > > > > Chris, > > > > Hi - I'm using [jsonstore] and it's great to have it. It's not a > flexible as [xmlparse] though. > > > > So if I want to pull out the error message from a Stripe.com json > response I have to do the following: > > > > [table name=3DtabJSONPARSE&fields=3DtID, > error:type,error:message][/table][!] > > [/!][jsonstore table=3DtabJSONPARSE][ > varSTRIPERESPONSE][/jsonstore][!] > > [/!][search table=3DtabJSONPARSE&netIDdatarq=3Dfind_all][ > founditems][!] > > [/!][text]error:type=3D[error:type][/text][!] > > [/!][text]error:message=3D[error:message][/text][= !] > > [/!][/founditems][/search] > > > > Only then can I access the variable [error:message]. I also need to > know the exact structure of the incoming JSON response so I can set up th= e > table correctly. > > > > If we had similar functionality to [xmlparse] then I could do something > like: > > > > [jsonparse var=3Djson_var1][varSTRIPERESPONSE][/jsonpars= e] > > [jsonnode ref=3Djson_var1&path=3Dnamed: > error:message][value][/jsonnode] > > > > It would also be great to be able to traverse the JSON response, > particularly if we are not sure about the structure of the incoming JSON > > > > [jsonnodes ref=3Djson_var1] > > [name]=3D[value] > > [/jsonnodes] > > > > > > - Tom > > > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Digital Revolutionaries > > 1st Floor, Castleriver House > > 14-15 Parliament Street > > Temple Bar,Dublin 2 > > Ireland > > ---------------------------------------------- > > [t]: + 353 1 4403907 > > [e]: > > [w]: > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > On 3 March 2017 at 15:27, wrote: > > Hi Tom! WebDNA already includes a JSON parser, that takes any JSON > Object, parse and store it: it will automatically create the database if = it > does not exist, create the fields and populate it. > > > > http://www.webdna.us/page.dna?numero=3D307 > > > > From this, it is easy to use the data by treating the database (or > table) like any other WebDNA database. > > > > best regards, > > > > - chris > > > > > > > > > On Mar 3, 2017, at 15:57, Tom Duke wrote: > > > > > > Chris, > > > > > > Hi - great to hear that you are working on this. > > > > > > The features that I would love to see are: > > > > > > > > > [json_encode]{data}[/json_encode] > > > > > > It would operate the same as the matching PHP function: > http://www.php.net/manual/en/function.json-encode.php > > > > > > So the data would be a WebDNA array and/or perhaps name/value pairs > separated by line returns. Nested JSON would require some thought, some > ideas here: http://stackoverflow.com/questions/15810257/create- > nested-json-object-in-php > > > > > > > > > [json_parse]{data}[/json_parse] > > > > > > It would operate in a similar way to [xmlparse] allowing us to > traverse and extract the JSON data by node. Also similar to the PHP > json_decode function: http://www.php.net/manual/en/ > function.json-decode.php > > > > > > > > > > > > - Tom > > > > > > > > > > > > > > > > > > > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > Digital Revolutionaries > > > 1st Floor, Castleriver House > > > 14-15 Parliament Street > > > Temple Bar,Dublin 2 > > > Ireland > > > ---------------------------------------------- > > > [t]: + 353 1 4403907 > > > [e]: > > > [w]: > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > > > On 27 February 2017 at 14:24, wrote= : > > > Hello, > > > > > > we are interested to expand and develop the JSON capabilities and > compatibility of WebDNA, particularly treating JSON-formatted returns fro= m > javascript as well as submitting JSON-formatted info to external programs > and applications. > > > > > > If you have any related ideas, we are listening! :-) > > > > > > - chris--------------------------------------------------------- > > > This message is sent to you because you are subscribed to > > > the mailing list . > > > To unsubscribe, E-mail to: > > > archives: http://mail.webdna.us/list/talk@webdna.us > > > Bug Reporting: support@webdna.us > > > > > > --------------------------------------------------------- This > message is sent to you because you are subscribed to the mailing list . T= o > unsubscribe, E-mail to: archives: http://mail.webdna.us/list/ > talk@webdna.us Bug Reporting: support@webdna.us > > > > --------------------------------------------------------- > > This message is sent to you because you are subscribed to > > the mailing list . > > To unsubscribe, E-mail to: > > archives: http://mail.webdna.us/list/talk@webdna.us > > Bug Reporting: support@webdna.us > > > > --------------------------------------------------------- This message > is sent to you because you are subscribed to the mailing list . To > unsubscribe, E-mail to: archives: http://mail.webdna.us/list/ > talk@webdna.us Bug Reporting: support@webdna.us > > --------------------------------------------------------- > This message is sent to you because you are subscribed to > the mailing list . > To unsubscribe, E-mail to: > archives: http://mail.webdna.us/list/talk@webdna.us > Bug Reporting: support@webdna.us > --001a1144db7eb7a443055ecfcb07 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Chris,

Hi - finally coming back to this= ..

The [convertwords] idea does not work as each no= de in the table / database created by [jsonstore] is added as a field.=C2= =A0 So we don't have a 'from,to' field structure.
I also can't seem to use [listfields] with a table.=C2=A0 S= o the only option if you don't know the structure of the JSONobject is = to use [jsonstore] to create a database on disk and then use [listfields] o= n that to traverse the JSONobject.

Something like = this is needed just to see the values from the JSONobject

[jsonstore db=3Djsonparse.db]JSONobject[/jsonstore]
[list= fields db=3Djsonparse.db]
=C2=A0 =C2=A0 [showif [index]=3D1]
=C2=A0 =C2=A0 =C2=A0 [text]node-1-name=3D[fieldname][/text]
=C2=A0 =C2=A0 [/showif]
[/listfields]
[search db=3Djso= nparse.db&ne[node-1-name]data=3Dfind_all][founditems]
[l= istfields db=3Djsonparse.db]
=C2=A0 =C2=A0 [fieldname]=3D[interpr= et][[fieldname]][/interpret]
[/listfields]
[/foun= ditems][/search]

The 'jsonparse.db' then h= as to be zero'd out after each [jsonstore], or new data get appended to= it.=C2=A0 Alternatively we name the database something like jsonparse-[car= t].db to ensure they are unique, but we end up littering the disk with data= bases.

In the context of dealing with json from an= api or ajax call it seems like a lot of overhead to traverse a json respon= se.

Take care
- Tom

=




=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D
Digital Revolutionaries
1st Floor, Castleriv= er House
14-15 Parliament Street
Temple Bar,Dublin 2
Ireland
--= --------------------------------------------
[t]: + 353 1 4403907
[e]= : <mailto:to= m@revolutionaries.ie>
[w]: <http://www.revolutionaries.ie/>
=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

On 6 March 2017 at 10:21, <c= hristophe.billiottet@webdna.us> wrote:
Hi Tom! I suppose you could try something like this: first, c= reate the table, something like this should work fine

[JSONstore table=3DtabJSONPARSE]
JSONobject
[/JSONstore]

you do not need to know the exact structure of the incoming JSON response, = WebDNA will do it for you (I have personally not tested with a table, but i= t does with a db)

Then, you can use [convertwords]:

[convertwords table=3DtabJSONPARSE]error:type and error:message[/convertwor= ds]

This should work=E2=80=A6

- chris


> On Mar 4, 2017, at 16:59, Tom Duke <tom@revolutionaries.ie> wrote:
>
> Chris,
>
> Hi - I'm using [jsonstore] and it's great to have it.=C2=A0 It= 's not a flexible as [xmlparse] though.
>
> So if I want to pull out the error message from a Stripe.com json resp= onse I have to do the following:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[table na= me=3DtabJSONPARSE&fields=3DtID,error:type,error:message][/tab= le][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[/!][jsonstore t= able=3DtabJSONPARSE][varSTRIPERESPONSE][/jsonstore][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[/!][search tabl= e=3DtabJSONPARSE&netIDdatarq=3Dfind_all][founditems][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0[/!][text]error:type=3D[error:type][/text][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0[/!][text]error:message=3D[error:message][/text][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[/!][/founditems= ][/search]
>
> Only then can I access the variable [error:message].=C2=A0 I also need= to know the exact structure of the incoming JSON response so I can set up = the table correctly.
>
> If we had similar functionality to [xmlparse] then I could do somethin= g like:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [jsonparse var= =3Djson_var1][varSTRIPERESPONSE][/jsonparse]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [jsonnode ref= =3Djson_var1&path=3Dnamed:error:message][value][/jsonnode] >
> It would also be great to be able to traverse the JSON response, parti= cularly if we are not sure about the structure of the incoming JSON
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [jsonnodes ref= =3Djson_var1]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 [name]=3D[value]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [/jsonnodes] >
>
> - Tom
>
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<= br> > Digital Revolutionaries
> 1st Floor, Castleriver House
> 14-15 Parliament Street
> Temple Bar,Dublin 2
> Ireland
> ----------------------------------------------
> [t]: + = 353 1 4403907
> [e]: <mailto:tom@revoluti= onaries.ie>
> [w]: <http://www.revolutionaries.ie/>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<= br> >
> On 3 March 2017 at 15:27, <christophe.billiottet@webdna.us> wrote:
> Hi Tom! WebDNA already includes a JSON parser, that takes any JSON Obj= ect, parse and store it: it will automatically create the database if it do= es not exist, create the fields and populate it.
>
> http://www.webdna.us/page.dna?numero=3D307 >
> From this, it is easy to use the data by treating the database (or tab= le) like any other WebDNA database.
>
> best regards,
>
> - chris
>
>
>
> > On Mar 3, 2017, at 15:57, Tom Duke <tom@revolutionaries.ie> wrote:
> >
> > Chris,
> >
> > Hi - great to hear that you are working on this.
> >
> > The features that I would love to see are:
> >
> >
> > [json_encode]{data}[/json_encode]
> >
> > It would operate the same as the matching PHP function: http://www.php.net/manual/en/function.json-encode= ..php
> >
> > So the data would be a WebDNA array and/or perhaps name/value pai= rs separated by line returns. Nested JSON would require some thought, some = ideas here: http://stack= overflow.com/questions/15810257/create-nested-json-object-in-php<= /a>
> >
> >
> > [json_parse]{data}[/json_parse]
> >
> > It would operate in a similar way to [xmlparse] allowing us to tr= averse and extract the JSON data by node.=C2=A0 Also similar to the PHP jso= n_decode function:
http://www.php.net/manual/en= /function.json-decode.php
> >
> >
> >
> > - Tom
> >
> >
> >
> >
> >
> >
> >
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
> > Digital Revolutionaries
> > 1st Floor, Castleriver House
> > 14-15 Parliament Street
> > Temple Bar,Dublin 2
> > Ireland
> > ----------------------------------------------
> > [t]: + 353 1 4403907
> > [e]: <mailto:tom@rev= olutionaries.ie>
> > [w]: <http://www.revolutionaries.ie/>
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
> >
> > On 27 February 2017 at 14:24, <christophe.billiottet@webdna.us> wrote:
> > Hello,
> >
> > we are interested to expand and develop the JSON capabilities and= compatibility of WebDNA, particularly treating JSON-formatted returns from= javascript as well as submitting JSON-formatted info to external programs = and applications.
> >
> > If you have any related ideas, we are listening! :-)
> >
> > - chris-----------------------------------------------------= ----
> > This message is sent to you because you are subscribed to
> > the mailing list <talk@webdn= a.us>.
> > To unsubscribe, E-mail to: <talk-leave@webdna.us>
> > archives: http://mail.webdna.us/list/talk@we= bdna.us
> > Bug Reporting: support@webdn= a.us
> >
> > --------------------------------------------------------- Th= is message is sent to you because you are subscribed to the mailing list . = To unsubscribe, E-mail to: archives: http://mail.webdna.us/= list/talk@webdna.us Bug Reporting: support@webdna.us
>
> ---------------------------------------------------------
> This message is sent to you because you are subscribed to
> the mailing list <talk@webdna.us<= /a>>.
> To unsubscribe, E-mail to: <
talk-leave@webdna.us>
> archives: http://mail.webdna.us/list/talk@webdna.= us
> Bug Reporting: support@webdna.us<= /a>
>
> --------------------------------------------------------- This me= ssage is sent to you because you are subscribed to the mailing list . To un= subscribe, E-mail to: archives:
http://mail.webdna.us/list/= talk@webdna.us Bug Reporting: support@webdna.us

---------------------------------------------------------
This message is sent to you because you are subscribed to
the mailing list <talk@webdna.us&g= t;.
To unsubscribe, E-mail to: <talk= -leave@webdna.us>
archives: http://mail.webdna.us/list/talk@webdna.us
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 --001a1144db7eb7a443055ecfcb07-- . Associated Messages, from the most recent to the oldest:

    
  1. Re: [WebDNA] WebDNA Development server (William DeVaul 2018)
  2. Re: [WebDNA] WebDNA Development server (Stuart Tremain 2018)
  3. Re: [WebDNA] WebDNA development (Tom Duke 2017)
  4. Re: [WebDNA] WebDNA development (Tom Duke 2017)
  5. Re: [WebDNA] WebDNA development (christophe.billiottet@webdna.us 2017)
  6. Re: [WebDNA] WebDNA development (Tom Duke 2017)
  7. Re: [WebDNA] WebDNA development (christophe.billiottet@webdna.us 2017)
  8. Re: [WebDNA] WebDNA development (Tom Duke 2017)
  9. [WebDNA] WebDNA development (christophe.billiottet@webdna.us 2017)
1337 --001a1144db7eb7a443055ecfcb07 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Chris, Hi - finally coming back to this. The [convertwords] idea does not work as each node in the table / database created by [JSONstore] is added as a field. So we don't have a 'from,to' field structure. I also can't seem to use [listfields] with a table. So the only option if you don't know the structure of the JSONobject is to use [JSONstore] to create a database on disk and then use [listfields] on that to traverse the JSONobject. Something like this is needed just to see the values from the JSONobject [jsonstore db=3Djsonparse.db]JSONobject[/jsonstore] [listfields db=3Djsonparse.db] [showif [index]=3D1] [text]node-1-name=3D[fieldname][/text] [/showif] [/listfields] [search db=3Djsonparse.db&ne[node-1-name]data=3Dfind_all][founditems] [listfields db=3Djsonparse.db] [fieldname]=3D[interpret][[fieldname]][/interpret] [/listfields] [/founditems][/search] The 'jsonparse.db' then has to be zero'd out after each [JSONstore], or new data get appended to it. Alternatively we name the database something like jsonparse-[cart].db to ensure they are unique, but we end up littering the disk with databases. In the context of dealing with json from an api or ajax call it seems like a lot of overhead to traverse a json response. Take care - Tom =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Digital Revolutionaries 1st Floor, Castleriver House 14-15 Parliament Street Temple Bar,Dublin 2 Ireland ---------------------------------------------- [t]: + 353 1 4403907 [e]: [w]: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D On 6 March 2017 at 10:21, wrote: > Hi Tom! I suppose you could try something like this: first, create the > table, something like this should work fine > > [JSONstore table=3DtabJSONPARSE] > JSONobject > [/JSONstore] > > you do not need to know the exact structure of the incoming JSON response= , > WebDNA will do it for you (I have personally not tested with a table, but > it does with a db) > > Then, you can use [convertwords]: > > [convertwords table=3DtabJSONPARSE]error:type and > error:message[/convertwords] > > This should work=E2=80=A6 > > - chris > > > > On Mar 4, 2017, at 16:59, Tom Duke wrote: > > > > Chris, > > > > Hi - I'm using [JSONstore] and it's great to have it. It's not a > flexible as [xmlparse] though. > > > > So if I want to pull out the error message from a Stripe.com json > response I have to do the following: > > > > [table name=3DtabJSONPARSE&fields=3DtID, > error:type,error:message][/table][!] > > [/!][jsonstore table=3DtabJSONPARSE][ > varSTRIPERESPONSE][/jsonstore][!] > > [/!][search table=3DtabJSONPARSE&netIDdatarq=3Dfind_all][ > founditems][!] > > [/!][text]error:type=3D[error:type][/text][!] > > [/!][text]error:message=3D[error:message][/text][= !] > > [/!][/founditems][/search] > > > > Only then can I access the variable [error:message]. I also need to > know the exact structure of the incoming JSON response so I can set up th= e > table correctly. > > > > If we had similar functionality to [xmlparse] then I could do something > like: > > > > [jsonparse var=3Djson_var1][varSTRIPERESPONSE][/jsonpars= e] > > [jsonnode ref=3Djson_var1&path=3Dnamed: > error:message][value][/jsonnode] > > > > It would also be great to be able to traverse the JSON response, > particularly if we are not sure about the structure of the incoming JSON > > > > [jsonnodes ref=3Djson_var1] > > [name]=3D[value] > > [/jsonnodes] > > > > > > - Tom > > > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Digital Revolutionaries > > 1st Floor, Castleriver House > > 14-15 Parliament Street > > Temple Bar,Dublin 2 > > Ireland > > ---------------------------------------------- > > [t]: + 353 1 4403907 > > [e]: > > [w]: > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > On 3 March 2017 at 15:27, wrote: > > Hi Tom! WebDNA already includes a JSON parser, that takes any JSON > Object, parse and store it: it will automatically create the database if = it > does not exist, create the fields and populate it. > > > > http://www.webdna.us/page.dna?numero=3D307 > > > > From this, it is easy to use the data by treating the database (or > table) like any other WebDNA database. > > > > best regards, > > > > - chris > > > > > > > > > On Mar 3, 2017, at 15:57, Tom Duke wrote: > > > > > > Chris, > > > > > > Hi - great to hear that you are working on this. > > > > > > The features that I would love to see are: > > > > > > > > > [json_encode]{data}[/json_encode] > > > > > > It would operate the same as the matching PHP function: > http://www.php.net/manual/en/function.json-encode.php > > > > > > So the data would be a WebDNA array and/or perhaps name/value pairs > separated by line returns. Nested JSON would require some thought, some > ideas here: http://stackoverflow.com/questions/15810257/create- > nested-json-object-in-php > > > > > > > > > [json_parse]{data}[/json_parse] > > > > > > It would operate in a similar way to [xmlparse] allowing us to > traverse and extract the JSON data by node. Also similar to the PHP > json_decode function: http://www.php.net/manual/en/ > function.json-decode.php > > > > > > > > > > > > - Tom > > > > > > > > > > > > > > > > > > > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > Digital Revolutionaries > > > 1st Floor, Castleriver House > > > 14-15 Parliament Street > > > Temple Bar,Dublin 2 > > > Ireland > > > ---------------------------------------------- > > > [t]: + 353 1 4403907 > > > [e]: > > > [w]: > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > > > On 27 February 2017 at 14:24, wrote= : > > > Hello, > > > > > > we are interested to expand and develop the JSON capabilities and > compatibility of WebDNA, particularly treating JSON-formatted returns fro= m > javascript as well as submitting JSON-formatted info to external programs > and applications. > > > > > > If you have any related ideas, we are listening! :-) > > > > > > - chris--------------------------------------------------------- > > > This message is sent to you because you are subscribed to > > > the mailing list . > > > To unsubscribe, E-mail to: > > > archives: http://mail.webdna.us/list/talk@webdna.us > > > Bug Reporting: support@webdna.us > > > > > > --------------------------------------------------------- This > message is sent to you because you are subscribed to the mailing list . T= o > unsubscribe, E-mail to: archives: http://mail.webdna.us/list/ > talk@webdna.us Bug Reporting: support@webdna.us > > > > --------------------------------------------------------- > > This message is sent to you because you are subscribed to > > the mailing list . > > To unsubscribe, E-mail to: > > archives: http://mail.webdna.us/list/talk@webdna.us > > Bug Reporting: support@webdna.us > > > > --------------------------------------------------------- This message > is sent to you because you are subscribed to the mailing list . To > unsubscribe, E-mail to: archives: http://mail.webdna.us/list/ > talk@webdna.us Bug Reporting: support@webdna.us > > --------------------------------------------------------- > This message is sent to you because you are subscribed to > the mailing list . > To unsubscribe, E-mail to: > archives: http://mail.webdna.us/list/talk@webdna.us > Bug Reporting: support@webdna.us > --001a1144db7eb7a443055ecfcb07 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Chris,

Hi - finally coming back to this= ..

The [convertwords] idea does not work as each no= de in the table / database created by [JSONstore] is added as a field.=C2= =A0 So we don't have a 'from,to' field structure.
I also can't seem to use [listfields] with a table.=C2=A0 S= o the only option if you don't know the structure of the JSONobject is = to use [JSONstore] to create a database on disk and then use [listfields] o= n that to traverse the JSONobject.

Something like = this is needed just to see the values from the JSONobject

[jsonstore db=3Djsonparse.db]JSONobject[/jsonstore]
[list= fields db=3Djsonparse.db]
=C2=A0 =C2=A0 [showif [index]=3D1]
=C2=A0 =C2=A0 =C2=A0 [text]node-1-name=3D[fieldname][/text]
=C2=A0 =C2=A0 [/showif]
[/listfields]
[search db=3Djso= nparse.db&ne[node-1-name]data=3Dfind_all][founditems]
[l= istfields db=3Djsonparse.db]
=C2=A0 =C2=A0 [fieldname]=3D[interpr= et][[fieldname]][/interpret]
[/listfields]
[/foun= ditems][/search]

The 'jsonparse.db' then h= as to be zero'd out after each [JSONstore], or new data get appended to= it.=C2=A0 Alternatively we name the database something like jsonparse-[car= t].db to ensure they are unique, but we end up littering the disk with data= bases.

In the context of dealing with json from an= api or ajax call it seems like a lot of overhead to traverse a json respon= se.

Take care
- Tom

=




=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D
Digital Revolutionaries
1st Floor, Castleriv= er House
14-15 Parliament Street
Temple Bar,Dublin 2
Ireland
--= --------------------------------------------
[t]: + 353 1 4403907
[e]= : <mailto:to= m@revolutionaries.ie>
[w]: <http://www.revolutionaries.ie/>
=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

On 6 March 2017 at 10:21, <c= hristophe.billiottet@webdna.us> wrote:
Hi Tom! I suppose you could try something like this: first, c= reate the table, something like this should work fine

[JSONstore table=3DtabJSONPARSE]
JSONobject
[/JSONstore]

you do not need to know the exact structure of the incoming JSON response, = WebDNA will do it for you (I have personally not tested with a table, but i= t does with a db)

Then, you can use [convertwords]:

[convertwords table=3DtabJSONPARSE]error:type and error:message[/convertwor= ds]

This should work=E2=80=A6

- chris


> On Mar 4, 2017, at 16:59, Tom Duke <tom@revolutionaries.ie> wrote:
>
> Chris,
>
> Hi - I'm using [JSONstore] and it's great to have it.=C2=A0 It= 's not a flexible as [xmlparse] though.
>
> So if I want to pull out the error message from a Stripe.com json resp= onse I have to do the following:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[table na= me=3DtabJSONPARSE&fields=3DtID,error:type,error:message][/tab= le][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[/!][jsonstore t= able=3DtabJSONPARSE][varSTRIPERESPONSE][/jsonstore][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[/!][search tabl= e=3DtabJSONPARSE&netIDdatarq=3Dfind_all][founditems][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0[/!][text]error:type=3D[error:type][/text][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0[/!][text]error:message=3D[error:message][/text][!]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[/!][/founditems= ][/search]
>
> Only then can I access the variable [error:message].=C2=A0 I also need= to know the exact structure of the incoming JSON response so I can set up = the table correctly.
>
> If we had similar functionality to [xmlparse] then I could do somethin= g like:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [jsonparse var= =3Djson_var1][varSTRIPERESPONSE][/jsonparse]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [jsonnode ref= =3Djson_var1&path=3Dnamed:error:message][value][/jsonnode] >
> It would also be great to be able to traverse the JSON response, parti= cularly if we are not sure about the structure of the incoming JSON
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [jsonnodes ref= =3Djson_var1]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 [name]=3D[value]
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [/jsonnodes] >
>
> - Tom
>
>
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<= br> > Digital Revolutionaries
> 1st Floor, Castleriver House
> 14-15 Parliament Street
> Temple Bar,Dublin 2
> Ireland
> ----------------------------------------------
> [t]: + = 353 1 4403907
> [e]: <mailto:tom@revoluti= onaries.ie>
> [w]: <http://www.revolutionaries.ie/>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<= br> >
> On 3 March 2017 at 15:27, <christophe.billiottet@webdna.us> wrote:
> Hi Tom! WebDNA already includes a JSON parser, that takes any JSON Obj= ect, parse and store it: it will automatically create the database if it do= es not exist, create the fields and populate it.
>
> http://www.webdna.us/page.dna?numero=3D307 >
> From this, it is easy to use the data by treating the database (or tab= le) like any other WebDNA database.
>
> best regards,
>
> - chris
>
>
>
> > On Mar 3, 2017, at 15:57, Tom Duke <tom@revolutionaries.ie> wrote:
> >
> > Chris,
> >
> > Hi - great to hear that you are working on this.
> >
> > The features that I would love to see are:
> >
> >
> > [json_encode]{data}[/json_encode]
> >
> > It would operate the same as the matching PHP function: http://www.php.net/manual/en/function.json-encode= ..php
> >
> > So the data would be a WebDNA array and/or perhaps name/value pai= rs separated by line returns. Nested JSON would require some thought, some = ideas here: http://stack= overflow.com/questions/15810257/create-nested-json-object-in-php<= /a>
> >
> >
> > [json_parse]{data}[/json_parse]
> >
> > It would operate in a similar way to
[xmlparse] allowing us to tr= averse and extract the JSON data by node.=C2=A0 Also similar to the PHP jso= n_decode function: http://www.php.net/manual/en= /function.json-decode.php
> >
> >
> >
> > - Tom
> >
> >
> >
> >
> >
> >
> >
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
> > Digital Revolutionaries
> > 1st Floor, Castleriver House
> > 14-15 Parliament Street
> > Temple Bar,Dublin 2
> > Ireland
> > ----------------------------------------------
> > [t]: + 353 1 4403907
> > [e]: <mailto:tom@rev= olutionaries.ie>
> > [w]: <http://www.revolutionaries.ie/>
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D
> >
> > On 27 February 2017 at 14:24, <christophe.billiottet@webdna.us> wrote:
> > Hello,
> >
> > we are interested to expand and develop the JSON capabilities and= compatibility of WebDNA, particularly treating JSON-formatted returns from= javascript as well as submitting JSON-formatted info to external programs = and applications.
> >
> > If you have any related ideas, we are listening! :-)
> >
> > - chris-----------------------------------------------------= ----
> > This message is sent to you because you are subscribed to
> > the mailing list <talk@webdn= a.us>.
> > To unsubscribe, E-mail to: <talk-leave@webdna.us>
> > archives: http://mail.webdna.us/list/talk@we= bdna.us
> > Bug Reporting: support@webdn= a.us
> >
> > --------------------------------------------------------- Th= is message is sent to you because you are subscribed to the mailing list . = To unsubscribe, E-mail to: archives: http://mail.webdna.us/= list/talk@webdna.us Bug Reporting: support@webdna.us
>
> ---------------------------------------------------------
> This message is sent to you because you are subscribed to
> the mailing list <talk@webdna.us<= /a>>.
> To unsubscribe, E-mail to: <
talk-leave@webdna.us>
> archives: http://mail.webdna.us/list/talk@webdna.= us
> Bug Reporting: support@webdna.us<= /a>
>
> --------------------------------------------------------- This me= ssage is sent to you because you are subscribed to the mailing list . To un= subscribe, E-mail to: archives:
http://mail.webdna.us/list/= talk@webdna.us Bug Reporting: support@webdna.us

---------------------------------------------------------
This message is sent to you because you are subscribed to
the mailing list <talk@webdna.us&g= t;.
To unsubscribe, E-mail to: <talk= -leave@webdna.us>
archives: http://mail.webdna.us/list/talk@webdna.us
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 --001a1144db7eb7a443055ecfcb07-- . Tom Duke

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:

WebCatalog for dummies p2.2 (2000) NT 4.0/IIS WebCat Installation (1998) Include a big block of text (1997) [WebDNA] 4th of July (2008) [WebDNA] keep variable only letters and numbers (2015) How to Display text in empty fields (1997) [WebDNA] Server load (2008) I give up!! (1997) DomainList (2005) WebCat2 beta 11 - new prefs ... (1997) [platform] tag? (1998) [WebDNA] WebDNA code displaying on page (2012) WebCatalog can't find database (1997) Duplicate Cart ID (2001) WebCatalog 2.0 b 15 mac (1997) Urgent WebCatalog problem (2000) NewCart+Search with one click ? (1997) taxTotal, grandTotal (1997) Stumpted Again (1997) WebCatalog Work (2001)