Message
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
01646369
Message ID:
01646377
Views:
73
>>Hi,
>>
>>In one place of my app, the response of the Web API call is an "array" (I put the array in quotation marks because this is not exactly a VFP array). The "array" string looks like this:
>>
>>{"Version":"2.2222","Connected":true}
>>
>>
>>I suppose I can parse this string to get the values. But I was wondering if there is a "better" way to convert this string to an array or a cursor?
>>
>>TIA
>
>Just a quick solution, probably flawed
>
>
>clear
>local lcToParse, loRE
>
>lcToParse		= chrtran(STREXTRACT('{"Version":"2.2222","Connected":true}', '{', '}'), ',', CHR(10))
>loRE			= createobject('vbscript.regexp')
>loRE.Pattern		= '"(.+)"\:(.+)' 
>loRE.IgnoreCase		= .t.
>loRE.Global		= .t.
>loMatches		= loRE.Execute(lcToParse)
>
>for each loMatch in loMatches
>	? loMatch.Submatches(0), '=', loMatch.Submatches(1)
>endfor
>
>
>
>STREXTRACT to remove the {} and then I convert the comma to Line Feeds. Of course this means that this won't work if there are commas that are inside text, i am sure there is a better regular expression, but is Friday...

Interesting approach of using Regular Expression. In my view, it is a little 'overkill' since I can search the string for a key word (e.g. ["Version":]). I thought I was missing some built-in VFP function. But if you didn't see it, it means it does not exist.
Thank you!
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Previous
Next
Reply
Map
View