step1: 加密和解密

package com.example.textdemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

import java.io.UnsupportedEncodingException;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String firstString = "eyJ3ZWJzaXQiOiJodHRwczpcL1wvbWcubWluZG9yZHouY29tXC9taW5kb3JcL2Rvd25sb2FkX2FwcGx5P2lkPTk2IiwiZGV2S2V5IjoiZTYyYzUwNmVkOWFhNDZjMmFiNTBlMDMzOTgzNWVmY2YiLCJkZXZTZWNyZXQiOiI5YTliMTZkNjg4MTc0YTIzYTAzMjY5NDliMjNlNTFjYiIsInVzZXJJZCI6Im1pbkFwcDExMzk4OCIsInBsYXRmb3JtIjoiaU9TIiwibW9kZWwiOiJpUGhvbmUiLCJlcXVpcG1lbnRzIjoiW3tcImVxdWlwbWVudElkXCI6XCJ6Y3owMDIxMDM5MTBcIixcImVxdWlwbWVudE5vdGVcIjpcIuS4gOawp+WMlueisyhjbylcIixcInByb2R1Y3RJZFwiOlwiemN6MDAyXCJ9XSIsInR5cGUiOiJzaGFyZSIsImRldmljZXMiOiJ6Y3owMDIxMDM5MTAiLCJuaWNrTmFtZSI6IiIsImNyZWF0ZVRpbWUiOjE2NTA1ODk3Nzd9";

        /**
         解析base64   字符串
         * */


        String lastString = base64Decode(firstString, "UTF-8");

        Log.e("TAG", "" + lastString);


        Gson gson = new Gson();
        ScanCodeBean mScanCodeBean = gson.fromJson(lastString, ScanCodeBean.class);

        String webSitString = mScanCodeBean.getWebsit();

        String equipments = mScanCodeBean.getEquipments();

        Log.e("TAG", "" + webSitString + "\t" + equipments);

        /*  差不多完成版本
                final GsonBuilder gsonBuilder = new GsonBuilder();
                final Gson gson2 = gsonBuilder.create();

               ScanCodeDeviceBean[] testCase = gson2.fromJson(equipments, ScanCodeDeviceBean[].class);

        //        ScanCodeDeviceBean testCase = gson2.fromJson(equipments, ScanCodeDeviceBean.class);
                String equipmentNote =  testCase[0].getEquipmentNote();
                Log.e("TAG", "" +equipmentNote);*/


        List<ScanCodeDeviceBean> scanCodeDeviceBeanList = gson.fromJson(equipments, new TypeToken<List<ScanCodeDeviceBean>>() {
        }.getType());

        Log.e("TAG", "" + scanCodeDeviceBeanList);




     /*   ScanCodeDeviceBean mScanCodeDeviceBean = gson.fromJson(equipments, ScanCodeDeviceBean.class);

        String equipmentId = mScanCodeDeviceBean.getEquipmentId();


        Log.e("TAG", "" + equipmentId + "\t");*/


    }

    /**
     * Base64加密字符串
     *
     * @param content     -- 代加密字符串
     * @param charsetName -- 字符串编码方式
     * @return
     */
    private String base64Encode(String content, String charsetName) {
        if (TextUtils.isEmpty(charsetName)) {
            charsetName = "UTF-8";
        }
        try {
            byte[] contentByte = content.getBytes(charsetName);
            return Base64.encodeToString(contentByte, Base64.DEFAULT);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }


    /**
     * Base64解密字符串
     *
     * @param content     -- 待解密字符串
     * @param charsetName -- 字符串编码方式
     * @return
     */
    private String base64Decode(String content, String charsetName) {
        if (TextUtils.isEmpty(charsetName)) {
            charsetName = "UTF-8";
        }
        byte[] contentByte = Base64.decode(content, Base64.DEFAULT);
        try {
            return new String(contentByte, charsetName);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return "";
    }


}

step2: 生成json对象

package com.example.textdemo;

import android.os.Bundle;
import android.util.Log;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class HomeActivity extends AppCompatActivity {


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**生成json  首先生成list*/
        List<ScanCodeDeviceBean> scanCodeDeviceBeanList = new ArrayList<>();
        ScanCodeDeviceBean mScanCodeDeviceBean = new ScanCodeDeviceBean();
        mScanCodeDeviceBean.setEquipmentId("zcz002103910");
        mScanCodeDeviceBean.setEquipmentNote("一氧化碳(co)");
        mScanCodeDeviceBean.setProductId("zcz002");
        scanCodeDeviceBeanList.add(mScanCodeDeviceBean);
        Log.e("TAG", "" +scanCodeDeviceBeanList);


        Gson gson = new Gson();

      //  List<WellSectionEntity> sectionlist = gson.fromJson(jsonTemp, new TypeToken<List<WellSectionEntity>>(){}.getType());
        String age =  gson.toJson(scanCodeDeviceBeanList);

        Log.e("TAG", "" +age);



        /**list转字符串*/
        ScanCodeBean mScanCodeBean = new ScanCodeBean();
        mScanCodeBean.setWebsit("https://mg.mindordz.com/mindor/download_apply?id=96");
        mScanCodeBean.setDevKey("e62c506ed9aa46c2ab50e0339835efcf");
        mScanCodeBean.setDevSecret("9a9b16d688174a23a0326949b23e51cb");
        mScanCodeBean.setUserId("minApp113988");
        mScanCodeBean.setPlatform("iOS");
        mScanCodeBean.setModel("iPhone");
        mScanCodeBean.setEquipments(age);
        mScanCodeBean.setType("share");
        mScanCodeBean.setDevices("zcz002103910");
        mScanCodeBean.setNickName("");
        mScanCodeBean.setCreateTime(1650589777);

       String name =  gson.toJson(mScanCodeBean);

        Log.e("TAG", "" +name);


    }
}

step3:

package com.example.textdemo;


public class ScanCodeBean{
    /**
     * websit : https://mg.mindordz.com/mindor/download_apply?id=96
     * devKey : e62c506ed9aa46c2ab50e0339835efcf
     * devSecret : 9a9b16d688174a23a0326949b23e51cb
     * userId : minApp113988
     * platform : iOS
     * model : iPhone
     * equipments : [{"equipmentId":"zcz002103910","equipmentNote":"一氧化碳(co)","productId":"zcz002"}]
     * type : share
     * devices : zcz002103910
     * nickName :
     * createTime : 1650589777
     */

    private String websit;
    private String devKey;
    private String devSecret;
    private String userId;
    private String platform;
    private String model;
    private String equipments;
    private String type;
    private String devices;
    private String nickName;
    private int createTime;

    public String getWebsit() {
        return websit;
    }

    public void setWebsit(String websit) {
        this.websit = websit;
    }

    public String getDevKey() {
        return devKey;
    }

    public void setDevKey(String devKey) {
        this.devKey = devKey;
    }

    public String getDevSecret() {
        return devSecret;
    }

    public void setDevSecret(String devSecret) {
        this.devSecret = devSecret;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getPlatform() {
        return platform;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getEquipments() {
        return equipments;
    }

    public void setEquipments(String equipments) {
        this.equipments = equipments;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getDevices() {
        return devices;
    }

    public void setDevices(String devices) {
        this.devices = devices;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public int getCreateTime() {
        return createTime;
    }

    public void setCreateTime(int createTime) {
        this.createTime = createTime;
    }
}

step4:

package com.example.textdemo;




public class ScanCodeDeviceBean {
    /**
     * equipmentId : zcz002103910
     * equipmentNote : 一氧化碳(co)
     * productId : zcz002
     */

    private String equipmentId;
    private String equipmentNote;
    private String productId;

    public String getEquipmentId() {
        return equipmentId;
    }

    public void setEquipmentId(String equipmentId) {
        this.equipmentId = equipmentId;
    }

    public String getEquipmentNote() {
        return equipmentNote;
    }

    public void setEquipmentNote(String equipmentNote) {
        this.equipmentNote = equipmentNote;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }
}

end