新手求指点,关于Gson解析json的问题

有这样的json串:{"0":{"id":"1","username":"张工","department":"运营","post":"运营","phonenum":"15822001883"}}
我在用Gson解析的时候获取的值是空的请路过的大神指点一下。代码如下:

```public class NewsData {
private Linenum linenum;
public Linenum getLinenum() {
return linenum;
}

public void setLinenum(Linenum linenum) {
    this.linenum = linenum;
}

public class Linenum{

private int id;
private String username;
private String department;
private String post;
private String phonenum;
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getDepartment() {
    return department;
}
public void setDepartment(String department) {
    this.department = department;
}
public String getPost() {
    return post;
}
public void setPost(String post) {
    this.post = post;
}
public String getPhonenum() {
    return phonenum;
}
public void setPhonenum(String phonenum) {
    this.phonenum = phonenum;
}
public String toString() {
    return "linenum [ id=" + id + 
            ",username =" + username + 
            ", department=" + department + 
            ", post=" + post + 
            ", phonenum=" + phonenum  + "]";
}
}

public String toString(){
    return "[linenum :" + linenum +"]";

}
}

由于看不到你整个json的数据结构,不好判断你是解析类写错了,还是逻辑处理错了,你的javabean是自己写的还是gsonformat生成的?如果你是新手的话,我建议你还是用gsonformat生成这样保证不会错

  String json_Str="{\'id\':\'1\',\'username\':\'张工\',\'department\':\'运营\',\'post\':\'运营\',\'phonenum\':\'15822001883\'} ";

        Gson gson = new Gson();
        Linenum linenum = gson.fromJson(json_Str, Linenum.class);

话不多说,,,亲测可以解析,,,你那个外层的0多了,,内层可以解析,,

如果你数据形式依然是如下的话,先把 0 对应的String取出来然后再,解析为对象。

 {"0":{"id":"1","username":"张工","department":"运营","post":"运营","phonenum":"15822001883"}} 

这个,,应当可以完成你那个需求,,

 String json_Str = "{\"0\":{\'id\':\'1\',\'username\':\'张工\',\'department\':\'运营\',\'post\':\'运营\',\'phonenum\':\'15822001883\'} }";
         //可以解析为map,,然后在里面找需要的属性,,很粗暴,
//        Map<String,Object> map = new Gson().fromJson(json_Str, new TypeToken<HashMap<String,Object>>(){}.getType());
        Gson gson = new Gson();
        JsonElement je = new JsonParser().parse(json_Str);
        System.out.println(je.isJsonObject());
        String json2 = je.getAsJsonObject().get("0").toString();
        Linenum linenum = gson.fromJson(json2, Linenum.class);