JSONObject基本内容(一)

4068 ワード

参考資料:http://swiftlet.net/archives/category/jsonありがとうございます
 
普段はプロジェクトをしていますが、どうしてもjsonを使う相手に出会うことがあります。これは難しくないですが、長く使わないと忘れてしまいますので、基本的な使い方を書いてください。
 
前提:関連するjarファイルを導入する:
commons-lang-1.0.4.jar comons-collection s-2.11.jar commons-beanutils-1.8.0.jar json-lib-2.44.jar ezmorph-1.0.6.jar commons-loging-11.jar
 
そして開発できます。
 
一)javaBeanをjsonに変換する。
(1)まずjavaBeanを書きます。
  
public class User  implements Serializable{
    private static final long serialVersionUID = 1L;
    
    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }    
}
そしてこのjavaBeanをJSONObjectに変換します。
    public static void main(String[] args) {
        //javaBean     json   
        User user = new User();
        user.setUsername("Rime");
        user.setPassword("1234");
        JSONObject json1 = JSONObject.fromObject(user);
        System.out.println(json1.toString());
        
        //map   json   
        HashMap<Object,Object> userMap = new HashMap<Object,Object>();
        userMap.put("username", "Rime");
        userMap.put("password", "1234");
        JSONObject json2 = JSONObject.fromObject(userMap);
        System.out.println(json2.toString());
    }
出力の内容は以下の通りです。
{「password」:「1234」,「username」:「Rime」{username}:「Rime」,「password」:「1234」}
 
ここを見て疑問に思うかもしれませんが、どの対象がJSONObjectに変換できるのですか?答えはもちろんです。
JSON Object.froomObject(Object Object)方法は以下の集中型の対象にのみ有効です。JSON formated strigs、Maps、DynaBens and JavaBens。
【注意】DynaBensは、commons-beanutils定義のダイナミックbeanです。DynaBeanはJavaで定義されているBeanではなく、「偽」のBeanです。それはgetXXXとsetXXXの方法を通じて、XXX属性に対して価値を取り、値を設定するのではないからです。もしobjectが他のタイプのパラメータだったら?たとえば、数字、論理値、json形式ではない文字列は、空のJSONObjectオブジェクトを作成します。