2008/12/18 jason maina <jason.ma...@gmail.com>:
> Hi George,
>
> Thanks for the input.
> Well, the data is converted to json by php from a nested array after
> extracting the data from a database thus the reason why there's  flowerset
> and flowers.
>
> Im finally through with it, it looks kinda complicated in the nesting
> element but it somehow while retreiving the data it was easy remebering the
> various "layers".
>
> On the same breath will be looking into streamlining it and making it thin
> as you have outlined.
>
> Thanks
> Regards
> Jason
>
> On Thu, Dec 18, 2008 at 4:42 PM, George <george.bea...@googlemail.com>
> wrote:
>>
>> Hi Jason,
>>
>> Forgive me if I've misunderstood the question, but hopefully this
>> might help.
>>
>> As far as I know, you can infinitely nest your JSON data if that's
>> what you want to do.  I've noticed some fundamental problems with your
>> JSON you pasted in your post which may just be typos, but need to be
>> cleared up before your code will work.  Firstly the items in your
>> 'flowerset' are not enclosed in square brackets.  Secondly your names
>> (eg groupCode) do not need to be enclosed in quotations although this
>> won't break things.  Thirdly, in my opinion, you could break this down
>> and request a much smaller and less complex dataset from the server
>> (maybe just the group names first, then depending on what the user
>> clicked on get the flower names and so on)  Thus putting less load on
>> the server and reducing bandwidth.  Also, I'd say to have everything
>> nested under the name rsJson just adds another unnecessary dimension
>> of complication.
>>
>> Think of JSON as just a long bunch of name value pairs [{name:value}]
>> separated by commas where a value can be a number, string or another
>> array.  If your value is another array, then it must be enclosed in
>> square brackets.  As such, there should never be a curly bracket
>> immediately after a colon ( [{name:{name:value, name:value},
>> name:value}] ) is wrong.  [{name:[{name:value, name:value}],
>> name:value}] is correct.
>>
>> I've cleaned up a little bit of your data just to demonstrate the
>> correct syntax:
>>
>> {rsJson:
>>  [
>>    {groupCode:"1",groupName:"Roses",flowerSet:[
>>      {flowers: [
>>        {flowerCode:"15",flowerName:"Roses"}
>>        ]}
>>      ]},
>>    {groupCode:"2",groupName:"Carnations",flowerSet:[
>>      {flowers:[
>>        {flowerCode:"16",flowerName:"Spray Carnations"},
>>        {flowerCode:"17",flowerName:"Standard Carnations"}
>>        ]}
>>      ]}
>>  ]}
>>
>> To get to your data do something like this:
>>
>> myDataSetVar[0].rsJson[0].groupCode   (would give you "1")
>> myDataSetVar[0].rsJson[1].flowerSet[0].flowers[1].flowerName  (would
>> give you "Standard Carnations")
>>
>>
>> Really hope that helps and I haven't confused things further.
>>
>> All the best
>>
>> George
>>
>>
>> On Dec 18, 9:04 am, "jason maina" <jason.ma...@gmail.com> wrote:
>> > Thanks Ryan guess was kind of tired had failed looking at some of the
>> > points
>> > rather was not getting the point. Finally I'm through this is the final
>> > product:
>> >
>> >
>> > {"rsJson":[{"groupCode":"1","groupName":"Roses","flowerSet":{"flowers":[{"flowerCode":"15","flowerName":"Roses"}]}},{"groupCode":"2","groupName":"Carnations","flowerSet":{"flowers":[{"flowerCode":"16","flowerName":"Spray
>> > Carnations"},{"flowerCode":"17","flowerName":"Standard
>> >
>> > Carnations"}]}},{"groupCode":"3","groupName":"Perennials","flowerSet":{"flowers":[{"flowerCode":"2","flowerName":"Aster"},{"flowerCode":"3","flowerName":"Alstromeria"},{"flowerCode":"10","flowerName":"Gysophila"},{"flowerCode":"12","flowerName":"Limonium
>> >
>> > Perezzi"}]}},{"groupCode":"4","groupName":"Annuals","flowerSet":{"flowers":[{"flowerCode":"1","flowerName":"Ammi
>> >
>> > Majus"},{"flowerCode":"4","flowerName":"Bupleurum"},{"flowerCode":"5","flowerName":"Carthamus"},{"flowerCode":"6","flowerName":"Chinese
>> >
>> > Aster"},{"flowerCode":"7","flowerName":"Chrysantemum"},{"flowerCode":"8","flowerName":"Delphinium"},{"flowerCode":"13","flowerName":"Lisianthus"},{"flowerCode":"14","flowerName":"Molucella"},{"flowerCode":"18","flowerName":"Statice"},{"flowerCode":"19","flowerName":"Stocks"}]}},{"groupCode":"5","groupName":"Bulbs","flowerSet":{"flowers":[{"flowerCode":"9","flowerName":"Freesia"},{"flowerCode":"11","flowerName":"Lilies"}]}}]}
>> >
>> > kind regards
>> > Jason
>> >
>> > On Wed, Dec 17, 2008 at 8:04 PM, jason maina <jason.ma...@gmail.com>
>> > wrote:
>> > > What im wondering out of the reply is I cant have a nested JSON object
>> > > with
>> > > the following layout?
>> >
>> > > groupID, groupName, groupItems(array of items)
>> >
>> > > similar example:
>> >
>> >
>> > > >http://labs.adobe.com/technologies/spry/samples/data_region/JSONDataS...
>> >
>> > > Regards,
>> > > Jason
>> >
>> > > On Wed, Dec 17, 2008 at 7:02 PM, Ryan Gahl <ryan.g...@gmail.com>
>> > > wrote:
>> >
>> > >> typo... "...with NO properties"
>> >
>> > >> On Wed, Dec 17, 2008 at 10:02 AM, Ryan Gahl <ryan.g...@gmail.com>
>> > >> wrote:
>> >
>> > >>> Here are your problems... I'll remove the bulk of the data to make
>> > >>> it
>> > >>> more clear:
>> >
>> > >>> rsJson: {[{...}]}
>> >
>> > >>> what you have is illegal. You're essentially saying you have an
>> > >>> anonymous
>> > >>> object with not properties and filling it with an array (that's
>> > >>> probably not
>> > >>> even totally accurate)... the bottom line is, you can't have a curly
>> > >>> brace
>> > >>> immediately followed by a square brace. And going further you have
>> > >>> it all
>> > >>> just sitting in a property floating in space. The first thing you
>> > >>> need to do
>> > >>> is wrap the property in curlies so you're actually returning an
>> > >>> object...
>> >
>> > >>> {rsJson: ...}
>> >
>> > >>> Now, this other issue of putting a square bracket right inside a
>> > >>> curly...
>> > >>> You can either a) remove the outer curlies and just make rsJson be
>> > >>> an array,
>> > >>> or b) add a property name which then becomes the array.
>> >
>> > >>> a)
>> > >>> {rsJson: [{}, {}, ...]}
>> >
>> > >>> b)
>> > >>> {rsJson: {myArray: [...]}}
>> >
>> > >>> On Wed, Dec 17, 2008 at 9:53 AM, jason maina
>> > >>> <jason.ma...@gmail.com>wrote:
>> >
>> > >>>> Hi all,
>> > >>>> Below is JSON encoded(php) data. After evaluating and sanitizing it
>> > >>>> im
>> > >>>> not capable of extracting its contents im just not sure what im
>> > >>>> doing wrong:
>> >
>> > >>>> [php output]
>> >
>> > >>>>
>> > >>>> rsJson:{[{"groupCode":"1","groupName":"Roses","flowers":[{"flowerCode":"15","flowerName":"Roses"}]},
>> > >>>>
>> > >>>> {"groupCode":"2","groupName":"Carnations","flowers":[{"flowerCode":"16","flowerName":"Spray
>> > >>>> Carnations"
>> > >>>> },{"flowerCode":"17","flowerName":"Standard
>> > >>>> Carnations"}]},{"groupCode":"3","groupName":"Perennials"
>> >
>> > >>>>
>> > >>>> ,"flowers":[{"flowerCode":"2","flowerName":"Aster"},{"flowerCode":"3","flowerName":"Alstromeria"},{"flowerCode"
>> > >>>>
>> > >>>> :"10","flowerName":"Gysophila"},{"flowerCode":"12","flowerName":"Limonium
>> > >>>> Perezzi"}]},{"groupCode":"4"
>> > >>>>
>> > >>>> ,"groupName":"Annuals","flowers":[{"flowerCode":"1","flowerName":"Ammi
>> > >>>> Majus"},{"flowerCode":"4","flowerName"
>> > >>>>
>> > >>>> :"Bupleurum"},{"flowerCode":"5","flowerName":"Carthamus"},{"flowerCode":"6","flowerName":"Chinese
>> > >>>> Aster"
>> >
>> > >>>>
>> > >>>> },{"flowerCode":"7","flowerName":"Chrysantemum"},{"flowerCode":"8","flowerName":"Delphinium"},{"flowerCode"
>> >
>> > >>>>
>> > >>>> :"13","flowerName":"Lisianthus"},{"flowerCode":"14","flowerName":"Molucella"},{"flowerCode":"18","flowerName"
>> >
>> > >>>>
>> > >>>> :"Statice"},{"flowerCode":"19","flowerName":"Stocks"}]},{"groupCode":"5","groupName":"Bulbs","flowers"
>> >
>> > >>>>
>> > >>>> :[{"flowerCode":"9","flowerName":"Freesia"},{"flowerCode":"11","flowerName":"Lilies"}]}]}
>> >
>> > >>>> [php output]
>> >
>> > >>>> var jsonObj = res.responseText.evalJSON(true);
>> > >>>> alert(jsonObj);
>> >
>> > >>>> will not even popup, on firebug no errors showing up.
>> >
>> > >>>> Kind regards
>> > >>>> Jason
>> >
>> > >>> --
>> > >>> Ryan Gahl
>> > >>> CEO
>> > >>> Nth Penguin, LLC
>> > >>>http://www.nthpenguin.com
>> > >>> --
>> > >>> WebWidgetry.com / MashupStudio.com
>> > >>> Future Home of the World's First Complete Web Platform
>> > >>> --
>> > >>> Inquire: 1-920-574-2218
>> > >>> Blog:http://www.someElement.com
>> > >>> LinkedIn Profile:http://www.linkedin.com/in/ryangahl
>> >
>> > >> --
>> > >> Ryan Gahl
>> > >> CEO
>> > >> Nth Penguin, LLC
>> > >>http://www.nthpenguin.com
>> > >> --
>> > >> WebWidgetry.com / MashupStudio.com
>> > >> Future Home of the World's First Complete Web Platform
>> > >> --
>> > >> Inquire: 1-920-574-2218
>> > >> Blog:http://www.someElement.com
>> > >> LinkedIn Profile:http://www.linkedin.com/in/ryangahl
>>
>
>
> >
>


PHP has a depth limit of 512. It was 128 and before that only 20!

It was rasied from 20 to 128 on Thu May 24 22:39:06 2007 UTC
(http://cvs.php.net/viewvc.cgi/php-src/ext/json/JSON_parser.c?r1=1.10&r2=1.11)
and from 128 to 512 on Wed Jul 30 13:57:47 2008 UTC
(http://cvs.php.net/viewvc.cgi/php-src/ext/json/JSON_parser.c?r1=1.17&r2=1.18)

Richard.
-- 
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to