Heim > Backend-Entwicklung > PHP-Tutorial > 关于 Gson 解析JSON数据。。。

关于 Gson 解析JSON数据。。。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:18:32
Original
1136 Leute haben es durchsucht

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>
Nach dem Login kopieren
Nach dem Login kopieren

信息大概是: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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

然后问题是解析出来的 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>
Nach dem Login kopieren
Nach dem Login kopieren

信息大概是: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>
Nach dem Login kopieren
Nach dem Login kopieren

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>
Nach dem Login kopieren
Nach dem Login kopieren

然后问题是解析出来的 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>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage