2011-01-03 12 views
10

JSONのデータをアンドロイドAPIを使用してクラスのフィールドに簡単にマッピングする方法はありますか?JSONからJavaクラス

JSON:

{ email: 'email', password: 'pass' } 

私のクラス:

class Credentials 
{ 
    string email; 
    string password; 
} 
+0

例:http://goo.gl/BsuaM –

答えて

7

org.json - パッケージを使用してください。

JSONObject x = new JSONObject(jsonString); 
Credentials c = new Credentials(); 
c.email = x.getString("email"); 
c.password = x.getString("password"); 

これもアンドロイドランタイムの一部なので、外部パッケージは必要ありません。

+4

これは実際には含まれていますが、データを正確にマッピングするものではありません。 JSONを解析/記述し、単純なノードベースのAPIを提供します。しかし、あなたのコードはここでマッピングをしています。 – StaxMan

+1

私は2つの行で同じコードを行うことができるように、資格証明書にフィールドを持つコンストラクタを作成することでそれを行います。 JSONObject x =新しいJSONObject(jsonString); 資格情報c =新しい資格情報(x.getString( "email")、x.getString( "password")); – JPM

7

あなたはGSONを使用することができます。

+2

この問題はHTC電話で認識されています。http://sites.google.com/site/gson/gson-on-android –

0

私はあなたがuはあなたが1個のJSONファイルのうち、同時にさまざまな値を取得するためにJSONArrayを使用することができorg.jsonパッケージに...

を取得したい複数の資格を持っていると仮定します。

13

Jacksonを使用してください。はるかに便利(とパフォーマンスの問題であれば、より速く)同梱org.jsonクラスとカスタムコードを使用するよりも:

Credentials c = new ObjectMapper().readValue(jsonString, Credentials.class); 

(単に資格情報のフィールドは「国民に発見することがする必要があることに注意してください。または持っている必要がありますセッターメソッド)

関連する問題