【go】字符串切片与字符串出入数据库转化

需求

  1. 将请求数据存入数据库
  2. 与从数据库读取数据返回
  3. 在出库不使用反序列化情况下

请求结构体

type NoticegroupsCreateReq struct {
	Name      string   `json:"name" binding:"required"`
	UserIds   []string `json:"user_ids"  binding:"required"`
}

数据库类型

类型
namevarchar
user_idslongtext

返回结构体

type NoticegroupsCreateReq struct {
	Name      string   `json:"name" binding:"required"`
	UserIds   []string `json:"user_ids"  binding:"required"`
}

代码

入库

// []string -> string   []userIds -> ids

// 此时输出一下将要入口的数据,待转化数据
fmt.Println(req.UserIds)
// [31 62 32 44 33]

userIds, err := json.Marshal(req.UserIds)
ids := string(userIds)

fmt.Println(string(userIds))
// ["31","62","32","44","33"]

出库

// string -> []string  noticegroup.UserIds -> []userId

// 此时输出一下从数据库直接读到的数据,待转化数据
fmt.Println("s:",noticegroup.UserIds)
// s ="[\"31\"", "\"62\"","\"32\"","\"44\"","\"33\"]"

// 去掉字符串两边的方括号
noticegroup.UserIds = strings.Trim(noticegroup.UserIds, "[]")
// 按逗号拆分字符串
userId := strings.Split(noticegroup.UserIds, ",")
// 去掉每个字符串两边的引号和空格
for i := 0; i < len(userId); i++ {
	userId[i] = strings.Trim(userId[i], "\" ")
}

fmt.Println(userId)
// [31 62 32 44 33]

历程

请求转化存储返回
[31 62][“31”,“62”]"[“31"”, ““62"”]”[31 62]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微雨停了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值