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

2020-01-08 18:33:06 +08:00
 getYourMother
服务器返回一个字段如下:
...
"characteristics":"[[[5,129]],[[15,280],[16,583]]]",
...

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

各位大佬有什么好办法吗?
7028 次点击
所在节点    Android
14 条回复
YuTengjing
2020-01-08 18:34:44 +08:00
复杂的字符串处理上正则
chendy
2020-01-08 18:35:38 +08:00
这不就是数组套数组么…
sunhk25
2020-01-08 18:39:10 +08:00
数组扁平化? array.flat
choice4
2020-01-08 18:41:33 +08:00
这不就是三层 list,一层 string.split(,)吗是我想的太简单了吗
zkd8907
2020-01-08 18:41:43 +08:00
再 parse 一下"[[[5,129]],[[15,280],[16,583]]]"
hwenwur
2020-01-08 18:41:55 +08:00
拼接一个临时的 json(即 去掉 value 部分的引号):
...
"characteristics":[[[5,129]],[[15,280],[16,583]]],
...
maninfog
2020-01-08 18:49:43 +08:00
使用 org 的 JSONObject 把 str 提取成一个 JSONArray,然后遍历得到。或者像楼上一样,把引号去了,写一个 bean 解析,类型应该是 ArrayList<ArrayList<ArrayList<Int>>>
beatboxgao
2020-01-08 18:51:45 +08:00
```
String c = "[[[5,129]],[[15,280],[16,583]]]";
Gson gson = new Gson();
int[][][] arr = gson.fromJson(c, int[][][].class);
```
wangyzj
2020-01-08 18:58:56 +08:00
decode 套娃
vance123
2020-01-08 19:24:41 +08:00
写个自动机解析字符串
kyuuseiryuu
2020-01-08 23:02:42 +08:00
把所有的左右中括号去掉,再用逗号分隔就行了。
0o0o0o0
2020-01-09 09:01:46 +08:00
好像有个叫 ScriptEngine,js 处理这个就很方便。。。可以直接变成 js 数组,然后想做什么都可以。。。纯小白,说错了请原谅哈哈。。。
tankren
2020-01-09 10:03:00 +08:00
Regex?
richardZhao
2020-01-09 11:00:08 +08:00
数组扁平化
[[[5,129]],[[15,280],[16,583]]].flat(Infinity)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/636245

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX