前言

今天,我们用一个实际的例子来介绍现今主流的数据交换格式JSON!

Json实例

{"code":"0","msg":"success","data":[{"userId":"1","userPassword":"123","userPhone":"12345678910"}]}

java bean类

1.userMessage类

用来描述用户登录状态的类

实例:

package com.example.test;

import java.util.ArrayList;

import java.util.List;

public class UserMessage {

private Stringcode;

private Stringmsg;

private Listdata;

public UserMessage(){

this.code ="";

this.msg ="";

this.data =new ArrayList();

}

public String getCode() {

return code;

}

public void setCode(String code) {

this.code = code;

}

public String getMsg() {

return msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

public List getData() {

return data;

}

public void setData(List data) {

this.data = data;

}

public void addData(Object data){

this.data.add(data);

}

}

2.user类

描述:用来描述用户个人信息的类

实例:

package com.example.test;

public class User {

private StringuserId;

private StringuserPassword;

private StringuserPhone;

public User(){

}

public String getUserId() {

return userId;

}

public String getUserPhone() {

return userPhone;

}

public String getUserPassword() {

return userPassword;

}

public void setUserId(String userId) {

this.userId = userId;

}

public void setUserPhone(String userPhone) {

this.userPhone = userPhone;

}

public void setUserPassword(String userPassword) {

this.userPassword = userPassword;

}

}

Gson依赖(Android Studio开发工具)

在build.gradle中添加    implementation'com.google.code.gson:gson:2.8.5'

Json字符串转对象

这里使用的是Okhttp网络请求:

String JsonData = response.body().string();

首先获得json字符串转换成UserMessage 对象,这里可以用来判断用户登录情况

Gson gson =new Gson();

UserMessage userMessage=gson.fromJson(JsonData,UserMessage.class);

可以看到,利用GSON方法进行解析,关键在于根据json数据里面的结构写出一个对应的javaBean,而解析过程非常简单:

JavaBean对象 = gson.fromJson(son,javaBean类类名.class);

但是userMessage.getData()是List类型的数据,我们应该怎么解析呢,我是采用了以下的办法。

List list=userMessage.getData(); //使用

String Json=gson.toJson(list.get(0));

User user=gson.fromJson(Json,User.class);

userId=user.getUserId();

userPhone=user.getUserPhone();

最后成功将List类型数据转换成java bean类。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐