V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
masteryi
V2EX  ›  Java

怎么把这串字符串转换成 map

  •  
  •   masteryi · 2018-02-22 15:24:28 +08:00 · 3765 次点击
    这是一个创建于 2467 天前的主题,其中的信息可能已经有所发展或是发生改变。

    "{TotalPage=1, TotalCount=1, List=[{trdate=2018-01-20, chanel=I01, agpsid=, cramot=0, acblnc=5000, dpacct=20101032011000R0000044, opsnam=账户, authtl=, rvflg2=0, cycode=01, carefg=, trtime=19:21:19, pdinfo=sdf, pttram=+5,000.00, maifdt=2018-02-09, smryif=sdf, sernub=0, drcrfg=1, PayerAcNo=6217920688364550, prdcde=1000, moinf1=eww, prtif2=5000, prtif1=, agetps=, trcode=36009, ctnoac=6217920688364550, agpstp=, blflnm=GENLBL, bzbrch=2010103, smrycd=MB5101, trname=sdfj, PayeeAcNo=6217794123000000442, acpfsn=0001, deptyp=00, voucsq=, tlecod=888888, tlersn=8888880000001001, sequ02=1, cuacno=6217794123000000442, dramot=0}]}"

    11 条回复    2018-02-24 16:49:04 +08:00
    cxbig
        1
    cxbig  
       2018-02-22 15:30:50 +08:00
    有点像 json 但是格式不对,但是看上去挺规整,我会用正则把:
    key= 替换成"key":
    string_var 替换成 "string_var"
    空值 替换成 ""

    再以 json 处理
    masteryi
        2
    masteryi  
    OP
       2018-02-22 15:33:45 +08:00
    @cxbig 能写具体一点吗
    picasso250
        3
    picasso250  
       2018-02-22 15:34:27 +08:00
    写个 parser 吧,正则是搞不定的.

    不过,在写 parser 之前,搜一下,这是什么的默认输出(java 的?),以及有没有成熟的转换的方式.
    cxbig
        4
    cxbig  
       2018-02-22 15:36:45 +08:00
    @masteryi
    提供一个思路而已。具体实践请自行选择最优方式,身体力行。
    LeeSeoung
        5
    LeeSeoung  
       2018-02-22 16:01:11 +08:00
    用 json 解析,再填到 map 吧,一步到位不太可能。。而且 value 类型也不一致。。
    yrom
        6
    yrom  
       2018-02-22 16:08:20 +08:00
    这个应该可以看作没引号的 json,你试试用支持无引号 json 的解析库吧
    fengche361
        7
    fengche361  
       2018-02-23 10:47:54 +08:00
    简单,先把=全局替换成 "=" ,然后再把 , 全局替换成 ", " ,然后就是一条 json 了
    yzmm
        8
    yzmm  
       2018-02-23 13:23:35 +08:00
    这个不就时 map.toString 么?能否和给数据的人商量下格式?
    iblessyou
        9
    iblessyou  
       2018-02-23 14:00:50 +08:00
    @fengche361 你再看看这么替换出的是什么鬼
    fengche361
        10
    fengche361  
       2018-02-24 09:50:58 +08:00
    @iblessyou 确实有些问题,=换成: ,然后再处理一些双引号的位置,就行了
    agmtopy
        11
    agmtopy  
       2018-02-24 16:49:04 +08:00
    @yzmm 好眼神。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   915 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:15 · PVG 04:15 · LAX 12:15 · JFK 15:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.