将JSON字符串解析为自定义类

时间:2015-03-02 16:55:17

标签: android json

在我正在开发的应用中,我从网络服务中收到一个JSON字符串,我试图将此字符串转换为自定义类,如:

public class User {
public String userID;
public String description;
public int PIN;

public User(){}
}

这是吸气剂和制定者的方法。

我尝试使用Gson和方法来做这些事情:

Gson gson = new Gson();
User user = gson.fromJson(String fromServer, User.class);

其中String" fromServer"它已经在JSON编纂了

如果我在TextView中打印来自服务器的字符串,我有一个类似

的输出
[{"userId":"admin","description":"administrator","PIN":"00001"}]

但是当我打电话时

user.getUserId();

我收到了NullPointerException并且我不知道为什么

3 个答案:

答案 0 :(得分:1)

您的服务器正在返回一组用户。尝试像这样使用Gson:

Type listType = new TypeToken<ArrayList<User>>() {}.getType();
List<User> users = gson.fromJson(fromServer, listType);
User user = users.get(0);

答案 1 :(得分:0)

区分大小写。 java中的userID和json中的userId

答案 2 :(得分:0)

上面的答案是正确的。您可以使用Json2Pojo创建User类,然后使用Gson将json转换为class来验证这一点。您的用户类应如下所示:

public class User {

private String userId;
private String description;
private String PIN;

public String getUserId() {
return userId;
}


public void setUserId(String userId) {
this.userId = userId;
}


public String getDescription() {
return description;
}


public void setDescription(String description) {
this.description = description;
}

public String getPIN() {
return PIN;
}

public void setPIN(String PIN) {
this.PIN = PIN;
}

}

现在您可以使用Gson将json转换为User。

Gson gson = new Gson();
User user = gson.fromJson(fromServer, User.class)