Home > Backend Development > PHP Tutorial > 关于 Gson 解析JSON数据。。。

关于 Gson 解析JSON数据。。。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-06 20:18:32
Original
1133 people have browsed it

1.首先,我是从服务器端传回来的JSON数据如下:

<code>{"info":"succeed","user_id":"1","user_password":"9999","user_email":"95469@qq.com","user_nicheng":"\u6817\u5b50","user_sex":"\u7537","user_phone":"13590272662","user_add":null,"user_qianming":"\u5199\u4e0a\u4e00\u53e5\u8bdd\uff0c\u54f2\u7406\u4eba\u751f\u3002__by_\u6817\u5b50"}
</code>
Copy after login
Copy after login

信息大概是:info,user_id,user_password,user_email,user_nicheng,
user_sex,user_phone,user_add,user_qianming

2.然后我用 Gson 去解析以上这一段JSON,代码如下:

<code>UserBean user = new Gson().fromJson(string, UserBean.class);
</code>
Copy after login
Copy after login

3.最后贴上 UserBean.class 的代码。。。

<code>public class UserBean implements IUserBean{

    String info;
    int userId;
    String userEmail;
    String userNicheng;
    String userSex;
    String userPhone;
    String userAdd;
    String userQianming;
   //还有以下的 setXXX , getXXX 方法就忽略了</code>
Copy after login
Copy after login

然后问题是解析出来的 UserBean 的对象 user 中,只有info,userId是有值得,其他没有值,这是怎么回事。。。?
还有,Gson 中的fromJson方法,对我自定义的 UserBean 有什么要求吗?

回复内容:

1.首先,我是从服务器端传回来的JSON数据如下:

<code>{"info":"succeed","user_id":"1","user_password":"9999","user_email":"95469@qq.com","user_nicheng":"\u6817\u5b50","user_sex":"\u7537","user_phone":"13590272662","user_add":null,"user_qianming":"\u5199\u4e0a\u4e00\u53e5\u8bdd\uff0c\u54f2\u7406\u4eba\u751f\u3002__by_\u6817\u5b50"}
</code>
Copy after login
Copy after login

信息大概是:info,user_id,user_password,user_email,user_nicheng,
user_sex,user_phone,user_add,user_qianming

2.然后我用 Gson 去解析以上这一段JSON,代码如下:

<code>UserBean user = new Gson().fromJson(string, UserBean.class);
</code>
Copy after login
Copy after login

3.最后贴上 UserBean.class 的代码。。。

<code>public class UserBean implements IUserBean{

    String info;
    int userId;
    String userEmail;
    String userNicheng;
    String userSex;
    String userPhone;
    String userAdd;
    String userQianming;
   //还有以下的 setXXX , getXXX 方法就忽略了</code>
Copy after login
Copy after login

然后问题是解析出来的 UserBean 的对象 user 中,只有info,userId是有值得,其他没有值,这是怎么回事。。。?
还有,Gson 中的fromJson方法,对我自定义的 UserBean 有什么要求吗?

info有值因为JSON里有info
其他没有值是因为class的member在JSON里不存在(GSON不会把JSON的user_email填到java的userEmail)
userId有值因为.. java的int一定有一个值


gson没啥特别的坑.. 有个无参数无依赖的构造函数就能用 (也就是说非static的inner class不可以. 如果没有就要自己写一个InstanceCreator)

<code>public class Book implements Serializable {

    @SerializedName("jcId")
    private String bookId;
    
    ... 省略set get 方法
    
}


json 串里是jcId, 用注解和bookId 就可以绑定在一起呢</code>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template