Java 求解:关于如何将 mysql 的字符串转成数组😀

2019-03-21 17:29:00 +08:00
 13192262269
问题描述:

表里的某个字段数据:语句:(select S.ziduan1,S.ziduan2 from test S)
结果:
"ziduan1"={"A1","B1","C1"},"ziduan2"={"A2","B2","C2"}

java 是通过 Map 获取结果的

想要通过 java 输出效果:
"ziduan1"=[A1","B1","C1"],"ziduan2"=["A2","B2","C2"]

注意{}与[]的区别,谢谢😵有没有大神呀,跪求了
2701 次点击
所在节点    程序员
13 条回复
13192262269
2019-03-21 17:53:41 +08:00
我想到一种方法:Map<String,自定义转换方法> 来转换不知道这个要怎么写?✍有人指点一下吗?
domty
2019-03-21 18:00:12 +08:00
sql 查出来就是一个 list 吧?
每个 list 就是一个 obj 有 ziduan1 和 ziduan2 两个属性
10Buns
2019-03-21 18:00:35 +08:00
直接根据字段名自定义方法取?
mybatis 自定义类型转换器?
bxb100
2019-03-21 18:10:00 +08:00
查出来不是 list<map> 吗?
然而这个能用 list.toArray() 转吗
13192262269
2019-03-21 18:11:58 +08:00
我想到一个思路:Java 中 map.values 转换为 list
13192262269
2019-03-21 18:19:23 +08:00
@domty #2 是的,但是 ziduan1 属性的值为"ziduan1"={"A1","B1","C1"},我想转成"ziduan1"=[A1","B1","C1"]
wind3110991
2019-03-21 18:21:39 +08:00
这里的问题不在于你要怎么转换,而是:明明这两个字段都是 list,为什么你还要在 DB 里把字段存成{"1", "2"}
存为["1", "2"]不什么事情都没有了么,而且{"1", "2"}是什么鬼,不应该是{"1":"", "2":""}吗
wind3110991
2019-03-21 18:23:18 +08:00
实在不行,手动替换字符串{为[ ,}为],建议把这个存储改成 redis 吧,redis 支持 set 和 list 的 kv 存储。
要是我看到谁像你这样写我肯定喷他了。。
gejun123456
2019-03-21 18:26:24 +08:00
新建一个对象 两个字段是 string 数组 然后查出来 split 转一下呗
13192262269
2019-03-21 18:26:28 +08:00
@wind3110991 #8 我写错了,=是:
13192262269
2019-03-21 18:28:27 +08:00
@wind3110991 #8 我也想存数组,问题是 mysql 不能存数组
wind3110991
2019-03-21 18:30:01 +08:00
@13192262269 数据量上去了,业务关系不是特别复杂的话,可以用 redis ;
或者你可以多建一张表,来存这个数组的内容,不建议你这样设计字段
gz911122
2019-03-21 22:47:53 +08:00
.replace("{","[").replace("}","]")
不就完事了
听不懂楼主什么意思

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547096

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX