我从这个链接使用android-bootsrap来实现我的项目 https://github.com/AndroidBootstrap/android-bootstrap
我保留了项目结构,而不是执行身份验证。在我的应用程序中,我正在调用一个以Json格式返回数据的rest API。使用改造,我们也在调用服务并在Json中获取数据。
我们为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;
}
}
我在改装日志中获取数据但是当我试图通过User对象获取数据时,我得到的是NullPointerException。
我的Json数据如下:
{“name”:“user1”,“short_description”:“user1是研究生”}
答案 0 :(得分:1)
因此,您的User / UserWrapper类设置GSON的方式是期望JSON结果如下所示:
{
"results": {
"name": "user1",
"short_description": "user1 is a postgraduate student"
}
}
如果JSON结果只是&#34;结果中的内容&#34;在上面的示例中,您可能希望将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();
}