This topic created in 2500 days ago, the information mentioned may be changed or developed.
服务器返回一个字段如下:
...
"characteristics":"[[[5,129]],[[15,280],[16,583]]]",
...
取出[[[5,129]],[[15,280],[16,583]]]之后该如何取出里面的数字值呢?貌似 Gson 不能直接解析这种没有字段名的 json 吧..String.spit()也无法下手..
各位大佬有什么好办法吗?
14 replies • 2020-01-09 11:00:08 +08:00
 |
|
复杂的字符串处理上正则
|
 |
|
这不就是数组套数组么…
|
 |
|
数组扁平化? array.flat
|
 |
|
这不就是三层 list,一层 string.split(,)吗是我想的太简单了吗
|
 |
|
再 parse 一下"[[[5,129]],[[15,280],[16,583]]]"
|
 |
|
拼接一个临时的 json(即 去掉 value 部分的引号): ... "characteristics":[[[5,129]],[[15,280],[16,583]]], ...
|
 |
|
使用 org 的 JSONObject 把 str 提取成一个 JSONArray,然后遍历得到。或者像楼上一样,把引号去了,写一个 bean 解析,类型应该是 ArrayList<ArrayList<ArrayList<Int>>>
|
 |
|
``` String c = "[[[5,129]],[[15,280],[16,583]]]"; Gson gson = new Gson(); int[][][] arr = gson.fromJson(c, int[][][].class); ```
|
 |
|
decode 套娃
|
 |
|
写个自动机解析字符串
|
 |
|
把所有的左右中括号去掉,再用逗号分隔就行了。
|
 |
|
好像有个叫 ScriptEngine,js 处理这个就很方便。。。可以直接变成 js 数组,然后想做什么都可以。。。纯小白,说错了请原谅哈哈。。。
|
 |
|
Regex?
|
 |
|
数组扁平化 [[[5,129]],[[15,280],[16,583]]].flat(Infinity)
|