Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
No Safe Word
Feb 26, 2005

MonkeyMaker posted:

OK, I have a JSON object with two sub-objects. How do I reference a sub-object by name, not index?

Here's the JSON:
code:
{"menus":
	[
		{"buckets":
			[
				{"name":"item name", "price":"9.99", "description":"item description"},
				{"name":"item name", "price":"9.99", "description":"item description", "subs":
					[
						{"name":"item name", "price":"9.99"}
					]
				},
				{"name":"item name", "price":"9.99", "description":"item description"}
			]
		},
		{"baskets":
			[
				{"name":"item name", "price":"9.99", "description":"item description2"},
				{"name":"item name", "price":"9.99", "description":"item description2", "subs":
					[
						{"name":"item name", "price":"9.99"}
					]
				},
				{"name":"item name", "price":"9.99", "description":"item description2"}
			]
		}
	]
}
which validates as...valid...on jsonlint.com. I can access ['menus'] or ['menus'][0], but trying to get ['menus']['buckets'] fails. I have to be able to do this by name since it'll be client-updated as plain text.
But what you have is a one-item mapping of "menus" to a list of two other one-item mappings with keys of "buckets" and "baskets".

You want something like:
code:
{"menus":
   {"buckets":
      [ ... stuff ... ],
    "baskets":
      [ ... stuff ... ]
    }
}
The first set of brackets means you have a list of things, and you can only access stuff by index in a list.

Adbot
ADBOT LOVES YOU

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply