有这样的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);