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

大佬们,请问这种纯数字的 json 有解析的办法吗?

  •  
  •   getYourMother · 2020-01-08 18:33:06 +08:00 · 11749 次点击
    这是一个创建于 1816 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务器返回一个字段如下:
    ...
    "characteristics":"[[[5,129]],[[15,280],[16,583]]]",
    ...

    取出[[[5,129]],[[15,280],[16,583]]]之后该如何取出里面的数字值呢?貌似 Gson 不能直接解析这种没有字段名的 json 吧..String.spit()也无法下手..

    各位大佬有什么好办法吗?
    14 条回复    2020-01-09 11:00:08 +08:00
    YuTengjing
        1
    YuTengjing  
       2020-01-08 18:34:44 +08:00 via Android
    复杂的字符串处理上正则
    chendy
        2
    chendy  
       2020-01-08 18:35:38 +08:00
    这不就是数组套数组么…
    sunhk25
        3
    sunhk25  
       2020-01-08 18:39:10 +08:00 via Android
    数组扁平化? array.flat
    choice4
        4
    choice4  
       2020-01-08 18:41:33 +08:00 via Android
    这不就是三层 list,一层 string.split(,)吗是我想的太简单了吗
    zkd8907
        5
    zkd8907  
       2020-01-08 18:41:43 +08:00
    再 parse 一下"[[[5,129]],[[15,280],[16,583]]]"
    hwenwur
        6
    hwenwur  
       2020-01-08 18:41:55 +08:00 via Android
    拼接一个临时的 json(即 去掉 value 部分的引号):
    ...
    "characteristics":[[[5,129]],[[15,280],[16,583]]],
    ...
    maninfog
        7
    maninfog  
       2020-01-08 18:49:43 +08:00
    使用 org 的 JSONObject 把 str 提取成一个 JSONArray,然后遍历得到。或者像楼上一样,把引号去了,写一个 bean 解析,类型应该是 ArrayList<ArrayList<ArrayList<Int>>>
    beatboxgao
        8
    beatboxgao  
       2020-01-08 18:51:45 +08:00   ❤️ 3
    ```
    String c = "[[[5,129]],[[15,280],[16,583]]]";
    Gson gson = new Gson();
    int[][][] arr = gson.fromJson(c, int[][][].class);
    ```
    wangyzj
        9
    wangyzj  
       2020-01-08 18:58:56 +08:00
    decode 套娃
    vance123
        10
    vance123  
       2020-01-08 19:24:41 +08:00
    写个自动机解析字符串
    kyuuseiryuu
        11
    kyuuseiryuu  
       2020-01-08 23:02:42 +08:00 via iPhone
    把所有的左右中括号去掉,再用逗号分隔就行了。
    0o0o0o0
        12
    0o0o0o0  
       2020-01-09 09:01:46 +08:00 via Android
    好像有个叫 ScriptEngine,js 处理这个就很方便。。。可以直接变成 js 数组,然后想做什么都可以。。。纯小白,说错了请原谅哈哈。。。
    tankren
        13
    tankren  
       2020-01-09 10:03:00 +08:00
    Regex?
    richardZhao
        14
    richardZhao  
       2020-01-09 11:00:08 +08:00
    数组扁平化
    [[[5,129]],[[15,280],[16,583]]].flat(Infinity)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1586 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:51 · PVG 00:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.