2012年1月13日金曜日

Java API for JSON Processingについて

JSR 353: JavaTM API for JSON Processingをさくっと 読んでみました。
JSR353ではJSONのデータを扱うAPIの仕様について明記しています。今年に入って正式に標準化が決まったようです。
APIが入れられるパッケージはjavax.jsonとのことです。

この仕様のゴールは以下のAPIが開発されることです。
  • Produce and consume JSON text in a streaming fashion(similar to StAX API for XML)
  • Build a Java object model for JSON text using API classes(similar to DOM API for XML)
以下のことは仕様のゴールには含まれない。
  • Binding of JSON text to Java objects and vice versa.


既存のJSONデータを扱うパッケージは以下のようなものがあります。

Jacksonは以下のような簡単にPOJOで扱える仕組みです。

  1. ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally  
  2. User user = mapper.readValue(new File("user.json"), User.class);  
  1. public class User {  
  2.     public enum Gender { MALE, FEMALE };  
  3.   
  4.     public static class Name {  
  5.       private String _first, _last;  
  6.   
  7.       public String getFirst() { return _first; }  
  8.       public String getLast() { return _last; }  
  9.   
  10.       public void setFirst(String s) { _first = s; }  
  11.       public void setLast(String s) { _last = s; }  
  12.     }  
  13.   
  14.     private Gender _gender;  
  15.     private Name _name;  
  16.     private boolean _isVerified;  
  17.     private byte[] _userImage;  
  18.   
  19.     public Name getName() { return _name; }  
  20.     public boolean isVerified() { return _isVerified; }  
  21.     public Gender getGender() { return _gender; }  
  22.     public byte[] getUserImage() { return _userImage; }  
  23.   
  24.     public void setName(Name n) { _name = n; }  
  25.     public void setVerified(boolean b) { _isVerified = b; }  
  26.     public void setGender(Gender g) { _gender = g; }  
  27.     public void setUserImage(byte[] b) { _userImage = b; }  
  28. }  
  1. {  
  2.   "name" : { "first" : "Joe""last" : "Sixpack" },  
  3.   "gender" : "MALE",  
  4.   "verified" : false,  
  5.   "userImage" : "Rm9vYmFyIQ=="  
  6. }  

2012年1月2日月曜日

Sphinxへ移行

Wikiを使っていたが、やはり最近Sphinxへの移行を考え始めました。
理由は以下の点です。


  • ローカルでの作業が多いこと
    • viでがりがり記述が可能であるため、楽。
  • html以外でのドキュメントでも変換が可能であること。
    • PDF変換可能ということはプレゼン資料も作成可能


導入方法は以下手順。



今後Sphinxの使い方をまとめていく予定です。
まとめるというよりは自分の使いやすいようにリンクなどを張っていけば、今後役に立つ人はいると思うので。。。。