JSONパーサーがUNICODE文字列をデコードしてくれない
Rubyだと、
> str='{"message":"\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3057\u305f","status":"succeed"}' => "{"message":"\\u30ed\\u30b0\\u30a4\\u30f3\\u3057\\u307e\\u3057\\u305f","status":"succeed"}" > JSON.parse(str) => {"message"=>"ログインしました", "status"=>"succeed"}
このようにparseすると、unicode記法の文字列を
ちゃんと日本語に変換してくれるんだけど、
Flash Builderでas3corelibのJSON parserをつかってやってみると、
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="385" height="108"> <fx:Script> <![CDATA[ import com.adobe.serialization.json.JSON; protected function button1_clickHandler(event:MouseEvent):void { var str:String='{"message":"\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3057\u305f","status":"succeed"}'; var json:Object=JSON.decode(str); label.text=json.message; } ]]> </fx:Script> <fx:Declarations> <!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 --> </fx:Declarations> <s:Button x="10" y="10" label="変換" click="button1_clickHandler(event)"/> <s:Label x="10" y="39" fontSize="12" id="label"/> </s:WindowedApplication>
これを実行してみると、
となり、全然日本語になってない。
どうも文字の構造だけをJSONに変換するだけのようです。
みなさんどうしているのでしょう?
XMLにしたほうがいいのかのう。。。