近頃AmazonのAPIで遊んでます。
http://suz-lab.blogspot.com/2008/01/amazon-associates-web-service.html
残念なことに、Amazonからのレスポンスは、
僕の苦手なXMLです。一刻も早くJSONに変換したいところです。
今までは、該当XMLをJavascript側で、
XML.ObjTreeを用いてJSONに変換していましたが、
http://www.kawa.net/works/js/xml/objtree.html
今回は、JSON-libを用いてJava側で変換してみました。
http://json-lib.sourceforge.net/
依存関係も含めて、上記サイトから、
必要なjarを取得&配置すればよいのですが、
XMLまわりの処理では、XOMも必要になります。
http://www.xom.nu/
(サイトのどこかには書いてあるのかなー?見つけられなかった…)
以上のjarが準備できたら、下記のように利用することができます。
--------
String xml ="XMLを文字列かしたもの";
XMLSerializer serializer = new XMLSerializer();
JSON json = serializer.read(xml);
json.toString(); // Stringで出力
--------
いい感じに変換してくれます
ただ、配列まわりの処理が融通ききません。
つまり、
aaa
bbb
↓
{root: ["aaa", "bbb"]}
aaa
↓
{root: "aaa"}
となってしまいます。
{root: ["aaa"]}
となってほしいところですが、
強制的にそうするすべもなさそうです。
(XML.ObjTreeのforce_arrayのようなもの)
なので、今回は、Javascript側で、
object instanceof Array
で条件分岐して対応しました。
こう考えると、XML.ObjTreeの方が使いやすく感じてしまいます。
xmlObjectifier(jQuery)はどうなんだろう?
http://www.terracoder.com/
XPathを使うべきか?
http://coderepos.org/share/wiki/JavaScript-XPath
難しく考えすぎ?
この辺、まだまだ揺れてます。
0 件のコメント:
コメントを投稿