Re: [WebDNA] JSON Parser

This WebDNA talk-list message is from

2014


It keeps the original formatting.
numero = 111237
interpreted = N
texte = --047d7bd6b82865c14404f4f0611a Content-Type: text/plain; charset=ISO-8859-1 Yes. It's coming from the conversion somehow. I still can't quite figure it out. On Sat, Mar 15, 2014 at 5:10 AM, Tom Duke wrote: > David, > > Hi - have you tried the listwords without the convertchars ? > > Just to see where the issue is coming from. > > - Tom > > > > > Sent from my iPhone > > On 14 Mar 2014, at 15:42, David Bastedo wrote: > > HI all, not sure if I am experiencing a bug, or not. > > I am parsing a json output. that should be pretty simple. > > Sample output to parse (instagram): > > {"provider_url":"http:\/\/instagram.com\/","media_id":"661162059018947119_192009753","title":"Drink > a little drink, smoke a little smoke #jack #coke #church #whiskeyinthejaro > #whiskey #countrymusic #outlaw","url":"http:\/\/ > distilleryimage1.ak.instagram.com > \/3e92a5949b6a11e39c1412d6a650978d_8.jpg","author_name":"mitchzorn","height":640,"width":640,"version":"1.0","author_url":"http:\/\/ > instagram.com > \/mitchzorn","author_id":192009753,"type":"photo","provider_name":"Instagram"} > > steps: > > 1. conversion table > > [table name=cleanMeJSON&fields=from,to] > { > } > " > [/table] > > 2. [listwords words=[convertchars > table=cleanMeJSON][theOutPut][/convertchars]&Delimiters=,] > [index] [word]
> [/listwords] > > 3. result > 1 provider_url:http::///instagram.comm/ > 2 media_id:661162059018947119_192009753 > 3 title:Drink a little drink > 4 smoke a little smoke #jack #coke #church #whiskeyinthejaro #whiskey > #countrymusic #outlaw > 5 > url:http::///distilleryimage1.ak.instagram.comm/3e92a5949b6a11e39c1412d6a650978d_8.jpg > 6 author_name:mitchzorn > 7 height:640 > 8 width:640 > 9 version:1.0 > 10 author_url:http::///instagram.comm/mitchzorn > 11 author_id:192009753 > 12 type:photo > 13 provider_name:Instagram > > > > in particular, I have no idea how extra letters are getting into the > results. > Note the author link: http::///instagram.comm/mitchzorn > there is an extra "m" in "comm" > and an extra ":" and an extra "/" > > i noticed this before on something but thought it was the input - now I > see it is not. > > Is there anything that I have done, that should not work? > > I just compared my output to Tom's Json Parser script: > > json-12-provider_name = Instagram > json-11-type = photo > json-10-author_id = 192009753 > json-09-author_url = http:\/\/instagram.com\/mitchzorn > json-08-version = 1.0 > json-07-width = 640 > json-06-height = 640 > json-05-author_name = mitchzorn > json-04-url = http:\/\/distilleryimage1.ak.instagram.com > \/3e92a5949b6a11e39c1412d6a650978d_8.jpg > json-03-title = Drink a little drink, smoke a little smoke #jack #coke > #church #whiskeyinthejaro #whiskey #countrymusic #outlaw > json-02-media_id = 661162059018947119_192009753 > json-01-provider_url = http:\/\/instagram.com\/ > > > it's driving me a little nuts and only just realised that webcat was > responsible. Is this a BUG or operator error? > > thanks. > > d. > > > > On Thu, Feb 20, 2014 at 5:49 PM, Tom Duke wrote: > >> Hi all, >> >> There has been talk on the list in the past about a JSON parser. I have >> knocked together a cheap and nasty parser which tries to assign all of the >> key:value pairs to WebDNA variables. You can try it here: >> >> https://www.revolutionaries.ie/admin/test-json.tmpl >> >> It doesn't properly parse the JSON but it might help someone. The code >> is below. >> >> - Tom >> >> >> >> >> [text]debug=F[/text] >> >>

Paste some JSON

>>

(some samples here >> http://www.jquery4u.com/json/10-example-json-files/)

>>
>> >>
>> >>
>> >> >> [showif [action]=parse-json] >> >>

Sample JSON

>>
[text show=T]theJson=[sample-json][/text]


>> >> >> [!] >> >> >> ------------------------------------ >> ### Conversion table to strip non-breaking spaces ### >> >> [/!][table name=jsonClean&fields=from,to] >> %C2 >> %A0 >> [/table][!] >> >> >> ------------------------------------ >> ### Conversion table to facilitate spliting into key:value pairs ### >> >> [/!][table name=jsonSplitConversions&fields=from,to] >> | ~~~~ >> \" ^^^^ >> [/table][!] >> >> >> ------------------------------------ >> ### Convert back after spliting into key:value pairs ### >> >> [/!][table name=jsonSplitConversionsBack&fields=from,to] >> " >> ~~~~ | >> ^^^^ " >> [/table][!] >> >> >> ------------------------------------ >> ### pass one - run the conversions ### >> >> [/!][text]theJson=[convertwords table=jsonSplitConversions][convertchars >> table=jsonClean][theJson][/convertchars][/convertwords][/text][!] >> >> >> ------------------------------------ >> ### pass two - add bar to just before each key:value pair ### >> >> [/!][text]theJson=[grep >> search=("[^"]*"):&replace=|\1=][theJson][/grep][/text][!] >> >> >> ------------------------------------ >> ### pass three - list out the key:value pairs and assign them to text >> variables ### >> >> [/!][text]count=0[/text][listwords >> words=[url][theJson][/url]&delimiters=|{}][!] >> >> [/!][text]thisVal=[grep search=(,$)&replace=][getchars >> start=1&trim=both][convertwords >> table=jsonSplitConversionsBack][word][/convertwords][/getchars][/grep][/text][!] >> [/!][showif [debug]=T][index]. [url][thisVal][/url]
[/showif][!] >> [/!][hideif [url][thisVal][/url]=][!] >> [/!][text]json-[format .2d][text >> show=T]count=[math][count]+1[/math][/text][/format]-[thisVal][/text][!] >> [/!][/hideif][!] >> >> [/!][/listwords][!] >> >> >> ------------------------------------ >> ### Let's have a look at the variables ### >> >> [/!]

JSON Assigned to Text Variables

>> [listvariables name=json-&exact=F][name] = [value]
>> [/listvariables] >> >> [/showif] >> --------------------------------------------------------- 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 > > > > > -- > David Bastedo > > Ten Plus One Communications Inc. > http://www.10plus1.com > 416.277.4499 > --------------------------------------------------------- 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 > -- David Bastedo Ten Plus One Communications Inc. http://www.10plus1.com 416.277.4499 --047d7bd6b82865c14404f4f0611a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

Yes. It's coming from the conversion so= mehow. I still can't quite figure it out.


On Sat, Mar 15, 2014 at 5:10 AM, = Tom Duke <tom@revolutionaries.ie> wrote:
David,

=
Hi - have you tried the listwords without the convertchars ?

Just to see where the issue is coming from.
<= br>
- Tom




Sent fr= om my iPhone

On 14 Mar 2014, at 15:42,= David Bastedo <d= avid@10plus1.com> wrote:

HI all, not sure if I am experiencing a bug, or not.

I= am parsing a json output. that should be pretty simple.

Sampl= e output to parse (instagram):

{"provider_url":"http:\/\/instagram.com\/","media_id":"66116= 2059018947119_192009753","title":"Drink a little drink, smoke a little smoke #jack #coke #church=20 #whiskeyinthejaro #whiskey #countrymusic=20 #outlaw","url":"http:\/\/distilleryimage1.ak.instagram.com<= /a>\/3e92a5949b6a11e39c1412d6a650978d_8.jpg","author_name":&= quot;mitchzorn","height":640,"width":640,"ver= sion":"1.0","author_url":"http:\/\/instagram.com\/mitchzorn"= ,"author_id":192009753,"type":"photo","p= rovider_name":"Instagram"}

steps:

1. conversion table

[table name=3Dclea= nMeJSON&fields=3Dfrom,to]
{=A0=A0=A0
}=A0=A0=A0
"
[/= table]

2. [listwords words=3D[convertchars table=3DcleanMeJSON][theO= utPut][/convertchars]&Delimiters=3D,]
[index] [word]<br />
=A0[/listwords]

3. result
1 p= rovider_url:http::///instagram.comm/
=20 2 media_id:661162059018947119_192009753
=20 3 title:Drink a little drink
=20 4 smoke a little smoke #jack #coke #church #whiskeyinthejaro #whiskey #cou= ntrymusic #outlaw
=20 5 url:http::///distilleryimage1.ak.instagram.comm/3e92a5949b6a11e39c1412d6a= 650978d_8.jpg
=20 6 author_name:mitchzorn
=20 7 height:640
=20 8 width:640
=20 9 version:1.0
=20 10 author_url:http::///instagram.comm/mitchzorn
=20 11 author_id:192009753
=20 12 type:photo
=20 13 provider_name:Instagram



in part= icular, I have no idea how extra letters are getting into the results.
<= /div>
Note the author link: http::///instagram.comm/mitchzorn
there is an extra "m" in "comm"
and an extra &q= uot;:" and an extra "/"

i noticed this bef= ore on something but thought it was the input - now I see it is not.

Is there anything that I have done, that should not work?

=
I just compared my output to Tom's Json Parser script:

json= -12-provider_name =3D Instagram
json-11-type =3D photo
json-10-author_id =3D 192009753
json-09-author_url =3D http:\/\/instagram.com\/mitchzorn
json-08-version =3D 1.0
json-07-width =3D 640
json-06-height =3D 640
json-05-author_name =3D mitchzorn
json-04-url =3D http:\/\/distilleryimage1.ak.instagram.com\/3e92a5949b6a11e= 39c1412d6a650978d_8.jpg
json-03-title =3D Drink a little drink, smoke a little smoke #jack #coke #c= hurch #whiskeyinthejaro #whiskey #countrymusic #outlaw
json-02-media_id =3D 661162059018947119_192009753
json-01-provider_url =3D http:\/\/instagram.com\/


it's d= riving me a little nuts and only just realised that webcat was responsible.= Is this a BUG or operator error?

thanks.

d.



On Thu, Feb 20, 2014 at= 5:49 PM, Tom Duke <tom@revolutionaries.ie> wrote:
Hi all,

= There has been talk on the list in the past about a JSON parser. =A0I have = knocked together a cheap and nasty parser which tries to assign all of the = key:value pairs to WebDNA variables. =A0 You can try it here:


It doesn't properly pa= rse the JSON but it might help someone. =A0 The code is below.

- Tom




[text]debug=3DF[/text]

&= lt;h3>Paste some JSON</h3>
<form action=3D"[thisurl]" method=3D"post"><= /div>
<input type=3D"hidden" name=3D"action" val= ue=3D"parse-json" />
<textarea name=3D"sampl= e-json" style=3D"width: 50%; height: 200px;" placeholder=3D&= quot;paste some json"></textarea><br />
<button>Parse me</button>
</form>


[showif [action]=3Dparse-json]
<h3>Sample JSON</h3>
<pre>[text sh= ow=3DT]theJson=3D[sample-json][/text]</pre><br /><br />


[!]


<= div>--------------------------= ----------
### =A0Co= nversion table to strip non-breaking spaces ###

[/!][table name=3DjsonClean&fields=3Dfrom,to]
=
%C2
%A0
[/table][!]


----= --------------------------------
### =A0Conversion table to facilitate spliting into key:value = pairs =A0###

[/!][table name=3DjsonSplitConversions&fields=3Dfro= m,to]
|~~~~
\"^^^^


------------------------------------
### =A0Convert back after spliting into key:value pai= rs =A0###

[/!][table name=3DjsonSplitConversionsBack&fields= =3Dfrom,to]
"
~~~~|
^^^^<= span style=3D"white-space:pre-wrap">"
[/table][!]


------------------------------------
<= span style=3D"white-space:pre-wrap">### =A0pass one - run the conve= rsions =A0###

[/!][text]theJson=3D[convertwords table=3DjsonSplitConv= ersions][convertchars table=3DjsonClean][theJson][/convertchars][/convertwo= rds][/text][!]


------------------------------------
### =A0pass two - add bar= to just before each key:value pair ###

[/!][text]= theJson=3D[grep search=3D("[^"]*"):&replace=3D|\1=3D][th= eJson][/grep][/text][!]


------------------------------------
### =A0pass three - list out the key:value pairs and = assign them to text variables =A0###

[/!][text]count=3D0[/text][listwords words=3D[url][theJ= son][/url]&delimiters=3D|{}][!]

[/!][text]thisVal=3D[grep search=3D(,$)&= replace=3D][getchars start=3D1&trim=3Dboth][convertwords table=3DjsonSp= litConversionsBack][word][/convertwords][/getchars][/grep][/text][!]

[/!][showif [debug]=3DT][index]. [url][thisV= al][/url]<br />[/showif][!]

[/!][hideif [url][thisVal= ][/url]=3D][!]
[/!]= [text]json-[format .2d][text show=3DT]count=3D[math][count]+1[/math][/text]= [/format]-[thisVal][/text][!]
[/!][/hideif][!]

[/!][/listwords][!]


----------------------------= --------
### =A0Let's have a l= ook at the variables =A0###

[/!]<h3>JSON Ass= igned to Text Variables</h3>
[listvariables name=3Djson-&am= p;exact=3DF][name] =3D [value]<br />
[/listvariables]

[/showif]
--------------------------------------------------------- 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: suppo= rt@webdna.us



--
David B= astedo

Ten Plus One Communic= ations Inc.
http://= www.10plus1.com
416.277.4499

--------------------------------------------------------- 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: suppo= rt@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: suppo= rt@webdna.us



--=
David Bastedo

Ten Plus One Communic= ations Inc.
http://= www.10plus1.com
416.277.4499

--047d7bd6b82865c14404f4f0611a-- Associated Messages, from the most recent to the oldest:

    
  1. Re: [WebDNA] JSON Parser (David Bastedo 2014)
  2. Re: [WebDNA] JSON Parser (Tom Duke 2014)
  3. Re: [WebDNA] JSON Parser (David Bastedo 2014)
  4. Re: [WebDNA] JSON Parser (Stuart Tremain 2014)
  5. Re: [WebDNA] JSON Parser (Donovan Brooke 2014)
  6. [WebDNA] JSON Parser (Tom Duke 2014)
--047d7bd6b82865c14404f4f0611a Content-Type: text/plain; charset=ISO-8859-1 Yes. It's coming from the conversion somehow. I still can't quite figure it out. On Sat, Mar 15, 2014 at 5:10 AM, Tom Duke wrote: > David, > > Hi - have you tried the listwords without the convertchars ? > > Just to see where the issue is coming from. > > - Tom > > > > > Sent from my iPhone > > On 14 Mar 2014, at 15:42, David Bastedo wrote: > > HI all, not sure if I am experiencing a bug, or not. > > I am parsing a json output. that should be pretty simple. > > Sample output to parse (instagram): > > {"provider_url":"http:\/\/instagram.com\/","media_id":"661162059018947119_192009753","title":"Drink > a little drink, smoke a little smoke #jack #coke #church #whiskeyinthejaro > #whiskey #countrymusic #outlaw","url":"http:\/\/ > distilleryimage1.ak.instagram.com > \/3e92a5949b6a11e39c1412d6a650978d_8.jpg","author_name":"mitchzorn","height":640,"width":640,"version":"1.0","author_url":"http:\/\/ > instagram.com > \/mitchzorn","author_id":192009753,"type":"photo","provider_name":"Instagram"} > > steps: > > 1. conversion table > > [table name=cleanMeJSON&fields=from,to] > { > } > " > [/table] > > 2. [listwords words=[convertchars > table=cleanMeJSON][theOutPut][/convertchars]&Delimiters=,] > [index] [word]
> [/listwords] > > 3. result > 1 provider_url:http::///instagram.comm/ > 2 media_id:661162059018947119_192009753 > 3 title:Drink a little drink > 4 smoke a little smoke #jack #coke #church #whiskeyinthejaro #whiskey > #countrymusic #outlaw > 5 > url:http::///distilleryimage1.ak.instagram.comm/3e92a5949b6a11e39c1412d6a650978d_8.jpg > 6 author_name:mitchzorn > 7 height:640 > 8 width:640 > 9 version:1.0 > 10 author_url:http::///instagram.comm/mitchzorn > 11 author_id:192009753 > 12 type:photo > 13 provider_name:Instagram > > > > in particular, I have no idea how extra letters are getting into the > results. > Note the author link: http::///instagram.comm/mitchzorn > there is an extra "m" in "comm" > and an extra ":" and an extra "/" > > i noticed this before on something but thought it was the input - now I > see it is not. > > Is there anything that I have done, that should not work? > > I just compared my output to Tom's Json Parser script: > > json-12-provider_name = Instagram > json-11-type = photo > json-10-author_id = 192009753 > json-09-author_url = http:\/\/instagram.com\/mitchzorn > json-08-version = 1.0 > json-07-width = 640 > json-06-height = 640 > json-05-author_name = mitchzorn > json-04-url = http:\/\/distilleryimage1.ak.instagram.com > \/3e92a5949b6a11e39c1412d6a650978d_8.jpg > json-03-title = Drink a little drink, smoke a little smoke #jack #coke > #church #whiskeyinthejaro #whiskey #countrymusic #outlaw > json-02-media_id = 661162059018947119_192009753 > json-01-provider_url = http:\/\/instagram.com\/ > > > it's driving me a little nuts and only just realised that webcat was > responsible. Is this a BUG or operator error? > > thanks. > > d. > > > > On Thu, Feb 20, 2014 at 5:49 PM, Tom Duke wrote: > >> Hi all, >> >> There has been talk on the list in the past about a JSON parser. I have >> knocked together a cheap and nasty parser which tries to assign all of the >> key:value pairs to WebDNA variables. You can try it here: >> >> https://www.revolutionaries.ie/admin/test-json.tmpl >> >> It doesn't properly parse the JSON but it might help someone. The code >> is below. >> >> - Tom >> >> >> >> >> [text]debug=F[/text] >> >>

Paste some JSON

>>

(some samples here >> http://www.jquery4u.com/json/10-example-json-files/)

>>
[thisurl]" method="post"> >> >>
>> >>
>> >> >> [showif [action]=parse-json] >> >>

Sample JSON

>>
[text show=T]theJson=[sample-json][/text]


>> >> >> [!] >> >> >> ------------------------------------ >> ### Conversion table to strip non-breaking spaces ### >> >> [/!][table name=jsonClean&fields=from,to] >> %C2 >> %A0 >> [/table][!] >> >> >> ------------------------------------ >> ### Conversion table to facilitate spliting into key:value pairs ### >> >> [/!][table name=jsonSplitConversions&fields=from,to] >> | ~~~~ >> \" ^^^^ >> [/table][!] >> >> >> ------------------------------------ >> ### Convert back after spliting into key:value pairs ### >> >> [/!][table name=jsonSplitConversionsBack&fields=from,to] >> " >> ~~~~ | >> ^^^^ " >> [/table][!] >> >> >> ------------------------------------ >> ### pass one - run the conversions ### >> >> [/!][text]theJson=[convertwords table=jsonSplitConversions][convertchars >> table=jsonClean][theJson][/convertchars][/convertwords][/text][!] >> >> >> ------------------------------------ >> ### pass two - add bar to just before each key:value pair ### >> >> [/!][text]theJson=[grep >> search=("[^"]*"):&replace=|\1=][theJson][/grep][/text][!] >> >> >> ------------------------------------ >> ### pass three - list out the key:value pairs and assign them to text >> variables ### >> >> [/!][text]count=0[/text][listwords >> words=[url][theJson][/url]&delimiters=|{}][!] >> >> [/!][text]thisVal=[grep search=(,$)&replace=][getchars >> start=1&trim=both][convertwords >> table=jsonSplitConversionsBack][word][/convertwords][/getchars][/grep][/text][!] >> [/!][showif [debug]=T][index]. [url][thisVal][/url]
[/showif][!] >> [/!][hideif [url][thisVal][/url]=][!] >> [/!][text]json-[format .2d][text >> show=T]count=[math][count]+1[/math][/text][/format]-[thisVal][/text][!] >> [/!][/hideif][!] >> >> [/!][/listwords][!] >> >> >> ------------------------------------ >> ### Let's have a look at the variables ### >> >> [/!]

JSON Assigned to Text Variables

>> [listvariables name=json-&exact=F][name] = [value]
>> [/listvariables] >> >> [/showif] >> --------------------------------------------------------- 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 > > > > > -- > David Bastedo > > Ten Plus One Communications Inc. > http://www.10plus1.com > 416.277.4499 > --------------------------------------------------------- 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 > -- David Bastedo Ten Plus One Communications Inc. http://www.10plus1.com 416.277.4499 --047d7bd6b82865c14404f4f0611a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

Yes. It's coming from the conversion so= mehow. I still can't quite figure it out.


On Sat, Mar 15, 2014 at 5:10 AM, = Tom Duke <tom@revolutionaries.ie> wrote:
David,

=
Hi - have you tried the listwords without the convertchars ?

Just to see where the issue is coming from.
<= br>
- Tom




Sent fr= om my iPhone

On 14 Mar 2014, at 15:42,= David Bastedo <d= avid@10plus1.com> wrote:

HI all, not sure if I am experiencing a bug, or not.

I= am parsing a json output. that should be pretty simple.

Sampl= e output to parse (instagram):

{"provider_url":"http:\/\/instagram.com\/","media_id":"66116= 2059018947119_192009753","title":"Drink a little drink, smoke a little smoke #jack #coke #church=20 #whiskeyinthejaro #whiskey #countrymusic=20 #outlaw","url":"http:\/\/distilleryimage1.ak.instagram.com<= /a>\/3e92a5949b6a11e39c1412d6a650978d_8.jpg","author_name":&= quot;mitchzorn","height":640,"width":640,"ver= sion":"1.0","author_url":"http:\/\/instagram.com\/mitchzorn"= ,"author_id":192009753,"type":"photo","p= rovider_name":"Instagram"}

steps:

1. conversion table

[table name=3Dclea= nMeJSON&fields=3Dfrom,to]
{=A0=A0=A0
}=A0=A0=A0
"
[/= table]

2. [listwords words=3D[convertchars table=3DcleanMeJSON][theO= utPut][/convertchars]&Delimiters=3D,]
[index] [word]<br />
=A0[/listwords]

3. result
1 p= rovider_url:http::///instagram.comm/
=20 2 media_id:661162059018947119_192009753
=20 3 title:Drink a little drink
=20 4 smoke a little smoke #jack #coke #church #whiskeyinthejaro #whiskey #cou= ntrymusic #outlaw
=20 5 url:http::///distilleryimage1.ak.instagram.comm/3e92a5949b6a11e39c1412d6a= 650978d_8.jpg
=20 6 author_name:mitchzorn
=20 7 height:640
=20 8 width:640
=20 9 version:1.0
=20 10 author_url:http::///instagram.comm/mitchzorn
=20 11 author_id:192009753
=20 12 type:photo
=20 13 provider_name:Instagram



in part= icular, I have no idea how extra letters are getting into the results.
<= /div>
Note the author link: http::///instagram.comm/mitchzorn
there is an extra "m" in "comm"
and an extra &q= uot;:" and an extra "/"

i noticed this bef= ore on something but thought it was the input - now I see it is not.

Is there anything that I have done, that should not work?

=
I just compared my output to Tom's Json Parser script:

json= -12-provider_name =3D Instagram
json-11-type =3D photo
json-10-author_id =3D 192009753
json-09-author_url =3D http:\/\/instagram.com\/mitchzorn
json-08-version =3D 1.0
json-07-width =3D 640
json-06-height =3D 640
json-05-author_name =3D mitchzorn
json-04-url =3D http:\/\/distilleryimage1.ak.instagram.com\/3e92a5949b6a11e= 39c1412d6a650978d_8.jpg
json-03-title =3D Drink a little drink, smoke a little smoke #jack #coke #c= hurch #whiskeyinthejaro #whiskey #countrymusic #outlaw
json-02-media_id =3D 661162059018947119_192009753
json-01-provider_url =3D http:\/\/instagram.com\/


it's d= riving me a little nuts and only just realised that webcat was responsible.= Is this a BUG or operator error?

thanks.

d.



On Thu, Feb 20, 2014 at= 5:49 PM, Tom Duke <tom@revolutionaries.ie> wrote:
Hi all,

= There has been talk on the list in the past about a JSON parser. =A0I have = knocked together a cheap and nasty parser which tries to assign all of the = key:value pairs to WebDNA variables. =A0 You can try it here:


It doesn't properly pa= rse the JSON but it might help someone. =A0 The code is below.

- Tom




[text]debug=3DF[/text]

&= lt;h3>Paste some JSON</h3>
<form action=3D"[thisurl]" method=3D"post"><= /div>
<input type=3D"hidden" name=3D"action" val= ue=3D"parse-json" />
<textarea name=3D"sampl= e-json" style=3D"width: 50%; height: 200px;" placeholder=3D&= quot;paste some json"></textarea><br />
<button>Parse me</button>
</form>


[showif [action]=3Dparse-json]
<h3>Sample JSON</h3>
<pre>[text sh= ow=3DT]theJson=3D[sample-json][/text]</pre><br /><br />




<= div>--------------------------= ----------
### =A0Co= nversion table to strip non-breaking spaces ###

[/!][table name=3DjsonClean&fields=3Dfrom,to]
=
%C2
%A0
[/table][!]


----= --------------------------------
### =A0Conversion table to facilitate spliting into key:value = pairs =A0###

[/!][table name=3DjsonSplitConversions&fields=3Dfro= m,to]
|~~~~
\"^^^^
[/tabl= e][!]


------------------------------------
### =A0Convert back after spliting into key:value pai= rs =A0###

[/!][table name=3DjsonSplitConversionsBack&fields= =3Dfrom,to]
"
~~~~|
^^^^<= span style=3D"white-space:pre-wrap">"
[/table][!]


------------------------------------
<= span style=3D"white-space:pre-wrap">### =A0pass one - run the conve= rsions =A0###

[/!][text]theJson=3D[convertwords table=3DjsonSplitConv= ersions][convertchars table=3DjsonClean][theJson][/convertchars][/convertwo= rds][/text][!]


------------------------------------
### =A0pass two - add bar= to just before each key:value pair ###

[/!][text]= theJson=3D[grep search=3D("[^"]*"):&replace=3D|\1=3D][th= eJson][/grep][/text][!]


------------------------------------
### =A0pass three - list out the key:value pairs and = assign them to text variables =A0###

[/!][text]count=3D0[/text][listwords words=3D[url][theJ= son][/url]&delimiters=3D|{}][!]

[/!][text]thisVal=3D[grep search=3D(,$)&= replace=3D][getchars start=3D1&trim=3Dboth][convertwords table=3DjsonSp= litConversionsBack][word][/convertwords][/getchars][/grep][/text][!]

[/!][showif [debug]=3DT][index]. [url][thisV= al][/url]<br />[/showif][!]

[/!][hideif [url][thisVal= ][/url]=3D][!]
[/!]= [text]json-[format .2d][text show=3DT]count=3D[math][count]+1[/math][/text]= [/format]-[thisVal][/text][!]
[/!][/hideif][!]

[/!][/listwords][!]


----------------------------= --------
### =A0Let's have a l= ook at the variables =A0###

[/!]<h3>JSON Ass= igned to Text Variables</h3>
[listvariables name=3Djson-&am= p;exact=3DF][name] =3D [value]<br />
[/listvariables]

[/showif]
--------------------------------------------------------- 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: suppo= rt@webdna.us



--
David B= astedo

Ten Plus One Communic= ations Inc.
http://= www.10plus1.com
416.277.4499

--------------------------------------------------------- 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: suppo= rt@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: suppo= rt@webdna.us



--=
David Bastedo

Ten Plus One Communic= ations Inc.
http://= www.10plus1.com
416.277.4499

--047d7bd6b82865c14404f4f0611a-- David Bastedo

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:

Quotes inside alt tags (2008) Easter (1998) Web-based email solution (2003) Error Lob.db records error message not name (1997) [OT] Mom's gift (2006) Weird Math and SV (1997) [WebDNA] PROTECT (2017) I'm Baaaaaaaaaack - Questions! (2000) Secure server question (1997) E-Mailer (WebCatb15acgiMac) (1997) How do I make this faster???? (2000) quit command on NT (1997) Another question (1997) Explorer 3.0 (1997) form data submission gets truncated (1997) Plugin or CGI or both (1997) Next X hits (1996) Warning: Mac OS X 10.2.4 Update Overwrites Apache'shttpd.conf (2003) NYC-based WebDNA programmers (2003) Forms Search Questions (1997)