0

JSON Web サービスを介して受信したデータからオブジェクト プロパティを設定する必要があるタスクがあります。プロパティ名は JSON キーにマップされます。オブジェクトにデータを入力しようとして次のコードを使用していますが、この行に到達するとアプリがクラッシュします。

        while(looper.hasNext()){
            String key = looper.next();
            String val = json.get(key).toString();
            user.getClass().getDeclaredField(key).set(user, val); // crash
        }

オブジェクトはユーザーと呼ばれます。キー変数がユーザー オブジェクトのプロパティと一致することを確認しました。これを修正する方法についてのアイデアはありますか? ありがとう!

4

1 に答える 1

2

フィールドをアクセス可能に設定する必要があります

Field field = user.getClass().getDeclaredField(key);
if (field != null) {
 field.setAccessible(true);
 field.set(user, val);
}
于 2013-05-13T20:49:19.330 に答える