2010-11-30 6 views
1

私はデータソースとしてJSON ServicesモジュールとともにDrupal Servicesを使用しています。AndroidでDrupal JSON Services文字列をどのように逆シリアル化しますか?

DrupalCloudライブラリhttps://github.com/skyred/DrupalCloud/wikiを使用していますが、userLogin()呼び出しから受け取った結果を最適に処理する方法が不思議です。

コール自体は、我々が取得に失敗した場合:

{ 
    "#error": true, 
    "#message": "Some message" 
} 

呼び出しが成功したが、ログイン資格情報が間違っている場合は、次の呼び出しの成功とログイン資格情報が正しい

{ 
    "#error": false, 
    "#data": { 
    "#error": true, 
    "#message": "Some message" 
    } 
} 

場合、それが返されます:

{ 
    "#error": false, 
    "#data": { 
    "sessid": "foo", 
    "user": { 
     "uid": "69", 
     "name": "Russell Jones", 
     "pass": "bar", 
     "mail": "[email protected]", 
     "roles": { 
     "2": "authenticated user", 
     "5": "Student" 
     }, 
    } 
    } 
} 

このデータを意味のある方法で使用するにはどうすればよいですか?あるいは、呼び出しがうまくいったかどうか、そしてログインが成功したかどうかを調べるにはどうすればよいでしょうか。

答えて

0

を良いアイデアを与える必要がありますこれは、内の最後のJSONメッセージを解析するための一つの方法でありますあなたの質問:

public void readJsonString(String jsonString) throws JSONException 
{ 
    JSONObject jsonObject = new JSONObject(jsonString); 
    boolean error = jsonObject.getBoolean("#error"); 
    if (!error) 
    { 
     JSONObject data = jsonObject.getJSONObject("#data"); 
     String sessionId = data.getString("sessid"); 
     JSONObject user = data.getJSONObject("user"); 
     int uid = user.getInt("uid"); 
     String name = user.getString("name"); 

     // you get the pattern, same way with the other fields... 
    } 
} 
関連する問題