2010年11月26日金曜日

JSONのValue値

JSONの書き方について、最近知ったことを紹介させていただきます。
JSONを使い慣れている人にとっては、常識かもしれないけど、知ったときは
「へぇ~~」ってなったのでね。

そもそも、JSONって何かと言うとJavaScriptでよく扱われるデータの書式のことです
(合ってるかな??

一般的な形は以下のとおり。

  1. {"KEY":'VALUE',"KEY":'VALUE'}  

みたいな形で、KeyとValueの形でデータを表します。
ちなみに、これはクライアント側だけではなく、サーバ側でも使えます。
だいぶ前に紹介したJSONIC
なんていうのは、JSON形式の文字列をJavaの
クラスにエンコードしたり、逆にクラスをJSON形式の文字列にデコードしたりしてくれる
ライブラリです。

それで、注目して欲しいのが、VALUEを「'」で囲っている所。
なんとなく、自分は今まで「'」を使ってたんだけど、コレだと問題があるのです。
例えば、value値に「"」を含みたい場合は、
  1. {"KEY":'"hoge"'}  
で、問題無くvalue値が「"hoge"」として認識されます。
「'」をvalue値に含みたい場合は、
  1. // パースできない  
  2. {"KEY":''hoge''}  
  3. // こっちもパースできない  
  4. {"KEY":'\'hoge\''}  
上記みたいに記述したらパースJSONICがパース出来ずにExceptionをはいてしまいました。

で、代わりに下記の記述方法を試してみます。
  1. {"KEY":"VALUE"}  
key値・value値ともに、「"」を囲み文字として使用してみます。
この方法だと、
  1. {"KEY":"'hoge'"}  
  2. {"KEY":"\"hoge\""}  
上記の様にすることで、それぞれvalue値に「"」「'」を含める事ができます。
もちろん問題なくJSONICパース出来ます。

どうやら、正式にはJSONのvalue値は["]で囲ってやるのが正しい形のようです。
今までは、なんとなく「'」を使用していたので、今後は「"」を使用していこうと思います。

0 件のコメント:

コメントを投稿