2014-09-12 47 views
0

我使用Android的bootsrap從這個鏈接,我的項目,我保留了項目結構,因爲它是不進行認證。在我的應用程序中,我正在調用一個以Json格式返回數據的其餘API。使用改造,我們正在調用服務並獲取Json中的數據。無法從<br> <a href="https://github.com/AndroidBootstrap/android-bootstrap" rel="nofollow">https://github.com/AndroidBootstrap/android-bootstrap</a></p> <p>填充POJO與RESTAPI數據

我們爲Json API創建了一個POJO類。但在我的應用程序中,我們無法獲取用Rest API數據填充的Pojo對象。

我的代碼如下所示: User.java

public class User implements Serializable { 
private String shortDescription; 
private String name; 

public String getShortDescription() { return shortDescription;} 
public void setShortDescription(String shortDescription) { 
    this.shortDescription = shortDescription; 
} 

public String getName() { return name; } 
public void setName(String name) { this.name = name; } 
} 

UserService.java

public interface UserService { 
    @GET("/search/items") 
    UsersWrapper getUsers(); 
} 

UserWrapper.java

public class UsersWrapper { 
private User results; 
public User getResults() { return results; } 
} 

MainActivity.class

public class MainActivity extends BaseActivity { 
String data = ""; 
private User user; 
@Inject protected BootstrapServiceProvider serviceProvider; 

@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    new MyTask().execute(); 
} 

// making async request 
class MyTask extends AsyncTask<String, Void, String> { 
    @Override 
    protected String doInBackground(String... urls) { 
     try { 
      user = serviceProvider.getService().getUsers(); 
      user.getShortDescription(); // here i am getting NullPointerException 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return data; 
    } 
} 

我得到的數據在改造日誌,但是當我試圖打通用戶對象我收到NullPointerException異常數據。

的json數據如下:

{ 「名」: 「用戶1」, 「SHORT_DESCRIPTION」: 「USER1是一個研究生」}

+0

能否請你加什麼樣的一個例子你的API的JSON結果看起來像? – Pedlar 2014-09-12 15:36:57

回答

1

所以,你有你的用戶的方式/ UserWrapper類設置GSON期待一個JSON的結果,看起來像:

{ 
    "results": { 
    "name": "user1", 
    "short_description": "user1 is a postgraduate student" 
    } 
} 

如果JSON結果只是「結果」塊在我上面的例子裏面的東西,你會想溝UserWrapper一起,變您的服務界面如下所示:

public interface UserService { 
    @GET("/search/items") 
    User getUsers(); 
} 

如果JSON結果是你希望你的界面看起來像用戶如

[ 
    { 
    "name": "user1", 
    "short_description": "user1 is a postgraduate student" 
    }, 
    ... 
] 

然後數組:

public interface UserService { 
    @GET("/search/items") 
    List<User> getUsers(); 
} 
+0

如果我放棄UsersWrapper類,那麼我需要在User類中編寫getUsers()的實現。 – anand 2014-09-13 06:09:49

+0

我試過你的方法,但仍然收到空指針異常。 – anand 2014-09-13 07:48:27

+0

謝謝@Pedlar。最後,我得到了我沒有注意到結果對象的輸出。 – anand 2014-09-13 13:57:22

相關問題