• 请不要在回答技术问题时复制粘贴 AI 生成的内容
13192262269
V2EX  ›  程序员

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

  •  
  •   13192262269 · Mar 21, 2019 · 3459 views
    This topic created in 2677 days ago, the information mentioned may be changed or developed.
    问题描述:

    表里的某个字段数据:语句:(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"]

    注意{}与[]的区别,谢谢😵有没有大神呀,跪求了
    13 replies    2019-03-21 22:47:53 +08:00
    13192262269
        1
    13192262269  
    OP
       Mar 21, 2019
    我想到一种方法:Map<String,自定义转换方法> 来转换不知道这个要怎么写?✍有人指点一下吗?
    domty
        2
    domty  
       Mar 21, 2019
    sql 查出来就是一个 list 吧?
    每个 list 就是一个 obj 有 ziduan1 和 ziduan2 两个属性
    10Buns
        3
    10Buns  
       Mar 21, 2019
    直接根据字段名自定义方法取?
    mybatis 自定义类型转换器?
    bxb100
        4
    bxb100  
       Mar 21, 2019
    查出来不是 list<map> 吗?
    然而这个能用 list.toArray() 转吗
    13192262269
        5
    13192262269  
    OP
       Mar 21, 2019
    我想到一个思路:Java 中 map.values 转换为 list
    13192262269
        6
    13192262269  
    OP
       Mar 21, 2019
    @domty #2 是的,但是 ziduan1 属性的值为"ziduan1"={"A1","B1","C1"},我想转成"ziduan1"=[A1","B1","C1"]
    wind3110991
        7
    wind3110991  
       Mar 21, 2019
    这里的问题不在于你要怎么转换,而是:明明这两个字段都是 list,为什么你还要在 DB 里把字段存成{"1", "2"}
    存为["1", "2"]不什么事情都没有了么,而且{"1", "2"}是什么鬼,不应该是{"1":"", "2":""}吗
    wind3110991
        8
    wind3110991  
       Mar 21, 2019
    实在不行,手动替换字符串{为[ ,}为],建议把这个存储改成 redis 吧,redis 支持 set 和 list 的 kv 存储。
    要是我看到谁像你这样写我肯定喷他了。。
    gejun123456
        9
    gejun123456  
       Mar 21, 2019 via iPhone
    新建一个对象 两个字段是 string 数组 然后查出来 split 转一下呗
    13192262269
        10
    13192262269  
    OP
       Mar 21, 2019
    @wind3110991 #8 我写错了,=是:
    13192262269
        11
    13192262269  
    OP
       Mar 21, 2019
    @wind3110991 #8 我也想存数组,问题是 mysql 不能存数组
    wind3110991
        12
    wind3110991  
       Mar 21, 2019
    @13192262269 数据量上去了,业务关系不是特别复杂的话,可以用 redis ;
    或者你可以多建一张表,来存这个数组的内容,不建议你这样设计字段
    gz911122
        13
    gz911122  
       Mar 21, 2019
    .replace("{","[").replace("}","]")
    不就完事了
    听不懂楼主什么意思
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6101 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 767ms · UTC 03:23 · PVG 11:23 · LAX 20:23 · JFK 23:23
    ♥ Do have faith in what you're doing.