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

求教,这种序列化后的 json 字符串如何解析?

  •  1
     
  •   DXDE443 · 9 天前 · 1049 次点击
    String jsonStr = "{\"name\":\"Jack\",\"age\":18}";

    java 有没有类似于 js 的 JSON.parse 或者 eval 方法啊
    22 回复  |  直到 2018-07-10 20:01:06 +08:00
        1
    DXDE443   9 天前
    发错了,是 String jsonStr = "\"{\"name\":\"Jack\",\"age\":18}\""
        2
    yukiww233   9 天前
    new Gson().fromJson(String, Class<T>)
        3
    InternetExplorer   9 天前
    秘籍●多重字符之术
    =====================
    其实把 jsonStr 左右的两个引号去掉就是标准的 JSON 字符串了
        4
    DXDE443   9 天前
    还是不太对,应该是 String jsonStr = "\"{\\\"name\\\":\\\"Jack\\\",\\\"age\\\":18}\""
        5
    luozic   9 天前 via iPhone
    gson 等 java 里面的 json 工具库了解一下
        6
    DXDE443   9 天前
    不对不对,普通的解析我当然会,比如{"name" : 1},可我现在要解析的事"{\"name\" : 1}"这个样子的
        7
    pipixia   9 天前
    replace 一下
        8
    DXDE443   9 天前
    @DXDE443
    @yukiww233
    @InternetExplorer
    @luozic
    @pipixia 能帮忙重新看看 4 楼和 7 楼吗,我 1 楼说错了不知道怎么改
        9
    luozic   9 天前 via iPhone
    反序列化再处理。
        10
    execute   9 天前
    你可以试试用一下 com.alibaba.fastjson,我觉得挺好用的。有你正文里提到的 JSON.parse()方法
        11
    InternetExplorer   9 天前
    这样话就不是 JSON,让给你 JSON 的给你一个标准的 JSON
        12
    DXDE443   9 天前
    @InternetExplorer 我是调用客户系统的 webService,内容我做不了主啊
        13
    kba977   9 天前
    fastjson 直接 parse 一下就好了
    ![]( https://i.loli.net/2018/07/10/5b4459faec204.png)
        14
    chocotan   9 天前
    StringEscapeUtils.unescapeJson
    然后去掉两头的"
        15
    DXDE443   9 天前
    我说的这个用 js 的话 JSON.parse(eval(jsonStr))然后就解决了,我不知道用 java 怎么处理
        16
    kba977   9 天前
        17
    lululau   9 天前
    SomeJSONParser.simeParseMethod(org.apache.commons.lang.StringEscapeUtils.unescapeJava(str))
        18
    DXDE443   9 天前
    刚刚试了下,parse 一次还是字符串,parse2 次就好了,看来是我想多了,谢大佬
    @kba977
        19
    feiyuanqiu   9 天前
    反斜线是 escape character

    - php 可以用 stripcslashes 函数处理
    - java 可以用
    -- apache 的 commons-lang3 库的 StringEscapeUtils.unescapeJson() 方法
    -- 或者 commons-text 库的 StringEscapeUtils.unescapeJson() 方法处理
        20
    DXDE443   9 天前
    刚刚想试 StringEscapeUtils 但本地只有 commons-lang3 的库,过时了,我强迫症不想用,又没有外网下不了 commons-text,不过还是谢各位老哥建议,老哥们说话又好听我超喜欢在这里面的
        21
    pipixia   9 天前
    <code>jsonStr.substring(jsonStr.indexOf("\"")+1,jsonStr.lastIndexOf("\"")).replace("\\","")</code>
        22
    notreami   9 天前
    比起怎么解析,为什么不从源头让 json 字符串规范呢??
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   实用小工具   ·   1988 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 19ms · UTC 13:40 · PVG 21:40 · LAX 06:40 · JFK 09:40
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1