Java List Map Json等各种字符串转换与组合

 从这里是主程序:

package com.zhousp.csvutil.util;

import org.junit.jupiter.api.Test;

import org.springframework.util.DigestUtils;

import java.util.*;

class StrTransTestTest {

    StrTransTest strTransTest = new StrTransTest();

    @Test

    void object2str() {

        //UserA 和 UserB 的不同之处是toString方法一个是Data生成的,一个是自定义的.

        UserA userA = new UserA();

        userA.setAddress("中国上海");

        userA.setUserId(1234L);

        userA.setCreateTime(new Date());

        userA.setIntroduceSign("我是java爱好者!");

        userA.setLoginName("道生一");

        userA.setNickName("老九");

        String md5Str = DigestUtils.md5DigestAsHex("ZSP800101".getBytes());

        userA.setPasswordMd5(md5Str);

        UserB userB = new UserB();

        BeanUtil.copyProperties(userA, userB);

        String stra = strTransTest.object2str(userA);

        //结果是:   UserA [Hash = 64133603, userId=1234, nickName=老九, loginName=道生一, passwordMd5=e14f409e9cdc9be4323de04fdf7cf182, introduceSign=我是java爱好者!, address=中国上海, isDeleted=null, lockedFlag=null, createTime=Sun Sep 19 16:56:52 CST 2021]

        String strb = strTransTest.object2str(userB);

        //结果是:   UserB(userId=1234, nickName=老九, loginName=道生一, passwordMd5=e14f409e9cdc9be4323de04fdf7cf182, introduceSign=我是java爱好者!, address=中国上海, isDeleted=null, lockedFlag=null, createTime=Sun Sep 19 16:56:52 CST 2021)

        //将userB字符串转换成Map<String,String>

        StrUtil strUtil =new StrUtil();

        Map<String,String> mapa = strUtil.splitterT(stra);

        Map<String,String> mapb = strUtil.splitterT(strb);

        //结果是:

        //将Map<String,String>转换成Json字符串

        String jsonstra = strUtil.map2Json(mapa);

        //结果是:   {"UserA [Hash ":" 64133603"," userId":"1234"," nickName":"老九"," loginName":"道生一"," passwordMd5":"e14f409e9cdc9be4323de04fdf7cf182"," introduceSign":"我是java爱好者!"," address":"中国上海"," isDeleted":"null"," lockedFlag":"null"," createTime":"Sun Sep 19 17:08:10 CST 2021]"}

        String jsonstrb = strUtil.map2Json(mapb);

        //结果是:   {"UserB(userId":"1234"," nickName":"老九"," loginName":"道生一"," passwordMd5":"e14f409e9cdc9be4323de04fdf7cf182"," introduceSign":"我是java爱好者!"," address":"中国上海"," isDeleted":"null"," lockedFlag":"null"," createTime":"Sun Sep 19 17:03:58 CST 2021)"}

        int start = strb.indexOf("(");

        int end = strb.indexOf(")");

        String substr = strb.substring(start+1,end);

        //结果是: userId=1234, nickName=老九, loginName=道生一, passwordMd5=e14f409e9cdc9be4323de04fdf7cf182, introduceSign=我是java爱好者!, address=中国上海, isDeleted=null, lockedFlag=null, createTime=Sun Sep 19 17:53:45 CST 2021

        Map<String,String> mapbb = strUtil.splitterT(substr);

        //结果是:

        //遍历Map,把经过处理的字符串写入List

        JSonStrUnit jSonStrUnit = new JSonStrUnit();

        Map<String ,String> newMap = new HashMap<>();

        Iterator<Map.Entry<String, String>> it = mapbb.entrySet().iterator();

        while (it.hasNext()) {

            Map.Entry<String, String> entry = it.next();

            jSonStrUnit.setKey(entry.getKey());

            String tempstr = "'" + entry.getValue() + "'"; //与数据库写入有关

            jSonStrUnit.setValue(tempstr);

            //把经过处理后的字符串写入Map

            newMap.put(entry.getKey(), tempstr);

        }

        String nmstr = newMap.toString();

        //结果是:  { passwordMd5='e14f409e9cdc9be4323de04fdf7cf182',  loginName='道生一',  isDeleted='null',  address='中国上海',  nickName='老九',  createTime='Sun Sep 19 17:53:45 CST 2021', userId='1234',  introduceSign='我是java爱好者!',  lockedFlag='null'}

        String jsonstraa = strUtil.map2Json(mapbb);

        //结果是:  {"userId":"1234"," nickName":"老九"," loginName":"道生一"," passwordMd5":"e14f409e9cdc9be4323de04fdf7cf182"," introduceSign":"我是java爱好者!"," address":"中国上海"," isDeleted":"null"," lockedFlag":"null"," createTime":"Sun Sep 19 17:53:45 CST 2021"}

        //组合sql inset table set指令

        int s = nmstr.indexOf("{");

        int e = nmstr.indexOf("}");

        String sub_str = nmstr.substring(s+1, e);

        //以下是MySQL插入指令

        String sqlstr = "insert into tb_person_info set " + sub_str +";";

        //结果是:  insert into tb_person_info set  passwordMd5='e14f409e9cdc9be4323de04fdf7cf182',  loginName='道生一',  isDeleted='null',  address='中国上海',  nickName='老九',  createTime='Sun Sep 19 18:12:40 CST 2021', userId='1234',  introduceSign='我是java爱好者!',  lockedFlag='null';

    }

}

下面这些是工具类和必要的条件::

package com.zhousp.csvutil.util;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

public class UserA {
    private Long userId;
    private String nickName;
    private String loginName;
    private String passwordMd5;
    private String introduceSign;
    private String address;
    private Byte isDeleted;
    private Byte lockedFlag;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    public Long getUserId() {
        return userId;
    }

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

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName == null ? null : nickName.trim();
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName == null ? null : loginName.trim();
    }

    public String getPasswordMd5() {
        return passwordMd5;
    }

    public void setPasswordMd5(String passwordMd5) {
        this.passwordMd5 = passwordMd5 == null ? null : passwordMd5.trim();
    }

    public String getIntroduceSign() {
        return introduceSign;
    }

    public void setIntroduceSign(String introduceSign) {
        this.introduceSign = introduceSign == null ? null : introduceSign.trim();
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Byte getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Byte isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Byte getLockedFlag() {
        return lockedFlag;
    }

    public void setLockedFlag(Byte lockedFlag) {
        this.lockedFlag = lockedFlag;
    }

    public Date getCreateTime() {
        return createTime;
    }

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

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", userId=").append(userId);
        sb.append(", nickName=").append(nickName);
        sb.append(", loginName=").append(loginName);
        sb.append(", passwordMd5=").append(passwordMd5);
        sb.append(", introduceSign=").append(introduceSign);
        sb.append(", address=").append(address);
        sb.append(", isDeleted=").append(isDeleted);
        sb.append(", lockedFlag=").append(lockedFlag);
        sb.append(", createTime=").append(createTime);
        sb.append("]");
        return sb.toString();
    }
}

package com.zhousp.csvutil.util;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

@Data
public class UserB {
    private Long userId;
    private String nickName;
    private String loginName;
    private String passwordMd5;
    private String introduceSign;
    private String address;
    private Byte isDeleted;
    private Byte lockedFlag;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
}

package com.zhousp.csvutil.util;

import com.alibaba.fastjson.JSON;
import com.google.common.base.Splitter;

import java.util.Map;

public class StrUtil {

    //将形如:  "id=123,name=zhousp,mobile=13818923478"   这样的字符串,解析成   Map<String, String>
    public Map<String, String> splitterT(String sequence) {
        Map<String, String> map = Splitter.on(",").withKeyValueSeparator('=').split(sequence);
        return map;
    }

    //将Map<String, String> 转换成 Json格式的字符串 "{"key1":"value","key2":"value"}"
    public String map2Json(Map<String, String> map){
        //将Map转换成JSON字符串
        return JSON.toJSONString(map);
    }


}

package com.zhousp.csvutil.util;

import lombok.Data;

@Data
public class JSonStrUnit {
    private String key;
    private String value;
}

package com.zhousp.csvutil.util;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.beans.PropertyAccessorFactory;

import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.util.*;

public abstract class BeanUtil {

    public static Object copyProperties(Object source, Object target, String... ignoreProperties) {
        if (source == null) {
            return target;
        }
        BeanUtils.copyProperties(source, target, ignoreProperties);
        return target;
     }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值