[Openid-specs-ab] Language Script Tags

Justin Richer jricher at mitre.org
Thu Mar 14 15:10:32 UTC 2013


In implementing things, I've run into a problem when looking to parse 
values with the language script tags and I'm wondering what other 
developers have done.

Specifically, the hash tag (#) is not a valid member name in JavaScript, 
Python, PHP, or Java (and likely many others), which means I can't do a 
simple JSON-to-Object deserialization on any fields that use this 
construct. In other words, say I've got this JSON:

   { "client_name#en-us": "Test Client" }

Parsing that to JavaScript, I'd expect to be able to use the object 
accessor, like:

   client.client_name#en-us

But that's not valid JavaScript. Yes, I can use array accessor notation, 
but it's inconsistent with other fields. Similarly in Java, I'd get 
something like this in a blindly-mapped object:

   client.getClient_name#en-us()

but that is also not a valid Java method name. It's the same basic story 
on just about every language I've poked at in the last few minutes here, 
so I can't be the first one to have run into this. What has everyone 
else done to overcome this limitation in the common parse/map operation? 
Do you have custom parsers that map the field names? Do you just not use 
object-level accessors for these fields?

  -- Justin


More information about the Openid-specs-ab mailing list