Android端使用FastJson解析从服务器请求到的JSON串数据,转为List<?>

一、导入相关依赖

打开build.gradle(:app),dependencies 中导入下面两个依赖

dependencies {
	implementation 'com.alibaba.android:vlayout:1.2.36'
    compile 'com.alibaba:fastjson:1.1.70.android'
}

二、将请求到的json串数据转为List<?>

1、新建与请求的json数据中的一样属性的类,DeviceData.java(示例,实际请根据自己请求相应数据情况新建相应属性的类)

注意:实体类中必须有一个空的构造方法,不然会报’com.alibaba.fastjson.JSONException: default constructor not found’这个错误

下面是这个实体类的代码:

package com.example.crab_breeding.first_home.horizontal_menus.all_data;

/**
 * 设备数据实体类
 */
public class DeviceData {
    String deviceId;
    String deviceDescription;
    String dataType;
    String dataValue;
    String deviceUnit;
    String uploadData;

    public DeviceData() {
    }
    public DeviceData(String deviceId, String deviceDescription, String dataType, String dataValue, String deviceUnit, String uploadData) {
        this.deviceId = deviceId;
        this.deviceDescription = deviceDescription;
        this.dataType = dataType;
        this.dataValue = dataValue;
        this.deviceUnit = deviceUnit;
        this.uploadData = uploadData;
    }
    
    public String getDataType() {
        return dataType;
    }
    public void setDataType(String dataType) {
        this.dataType = dataType;
    }
    public String getDataValue() {
        return dataValue;
    }
    public void setDataValue(String dataValue) {
        this.dataValue = dataValue;
    }
    public String getDeviceUnit() {
        return deviceUnit;
    }
    public void setDeviceUnit(String deviceUnit) {
        this.deviceUnit = deviceUnit;
    }
    public String getDeviceId() {
        return deviceId;
    }
    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }
    public String getDeviceDescription() {
        return deviceDescription;
    }
    public void setDeviceDescription(String deviceDescription) {
        this.deviceDescription = deviceDescription;
    }
     public String getUploadData() {
        return uploadData;
    }
   public void setUploadData(String uploadData) {
        this.uploadData = uploadData;
    }
}

2、代码中相应请求完数据的地方进行转换,下面是本人的例子
(1)导入依赖,新建存放数据的集合

import com.alibaba.fastjson.JSONArray;
private List<DeviceData> deviceDataList;

(2)需要地方进行转换,res为请求到的json串数据
请求到的数据res大概长这样:
在这里插入图片描述

//logcat中输入deal可观察json串数据
Log.e("deal", "deal:"+res );

//parseArray方法有两个参数,一个是json串数据,一个是实体类
deviceDataList= JSONArray.parseArray(res,DeviceData.class);

//可以在logcat中输入list观察几项数据来判断全部数据是否已存入list中
for (int i=0;i<dDList.size();i++){
                    DeviceData d=dDList.get(i);
                    Log.i("list:",d.getDataType()+d.getDeviceUnit());
                }

像这样,deviceDataList中已有数据

在这里插入图片描述

三、完成,nice!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值