2 qq 38005982 qq_38005982 于 2017.09.12 09:40 提问

一个字符串怎样取出中间的数值?

ss=“{name:123,id:123,num:3939393939,time:12:12:12}, {name:234,id:234,num:3939393939,time:12:12:12} ,{name:345,id:345,num:3939393939,time:12:12:12}”;

是这样的我要把上面的字符串ss中的num的数值取出来》》》可是我用劈开,就报异常
我劈的是对象和对象之间的
String[] list=findFollowUpStr.split("},{");
因为是敲得断点看的没法给大家截图,正常的交界处是这样的
9,time:12:12:12“} ,{“name:345,id:3
除了劈开还有其他方式可以让我取出num数据么?

5个回答

Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.09.12 09:44
已采纳

题主这个数据格式有点像【json】,,但是又不太符合json的语法

如果是json的话,,很容易解析,,各种库,调用即可

不是json那就用正则表达式,匹配,,
【num:\d*,】
可以试试这个正则表达式,,

Small_Mouse0
Small_Mouse0 回复我本狂儒: 这个数据人家就这样返回的??不行的话就正则表达式取,,
2 个月之前 回复
qq_38005982
qq_38005982 回复小鼠标丶: 嗯!因为这个接口返回的数据没有性别和电话,我实在不行就只能在接口的逻辑层,list[i].setSex(调用别的biz获取的数值),可是唉感觉好LOW
2 个月之前 回复
Small_Mouse0
Small_Mouse0 回复我本狂儒: 然后又给json成字符串了,,还是可以转回去的,,很方便,,,,【list循环然后取每一个对象的身份证号】转了还得发到coll层吧?还发的是json
2 个月之前 回复
qq_38005982
qq_38005982 回复小鼠标丶: 没错!。。。问题是俺安不回去,取出来的时候是把Object类型整成List,然后又给json成字符串了。现在要不就是我在视图层截取,要不就在接口的逻辑层用那个list循环然后取每一个对象的身份证号,调用别的方法去数据库拿值
2 个月之前 回复
Small_Mouse0
Small_Mouse0 回复我本狂儒: 劈开太暴力了,,,这个字符串哪里还的,,是不是json,,,我估计八成就是json,,json就用那个gson解析,,直接封装成对象了,,,不封装成对象,获取name也是很容易的
2 个月之前 回复
qq_38005982
qq_38005982 gson.toJson(list) 是使得的json我刚刚在list转json用list的值输出了一个,我在想是在coll层劈字符串还是在biz层for循环然后取list的特定值,鼠标兄给个建议
2 个月之前 回复
qq_38005982
qq_38005982 num:\d*是什么意思?取得数字么?
2 个月之前 回复
qq_38005982
qq_38005982 我也不晓得但是是从接口取得值。。。我好不容易搞定了接口,然后还要根据接口取出的对象身份证查询对象的性别和电话
2 个月之前 回复
huang931027
huang931027   2017.09.12 10:04

jquery 里面有一个parseJSON 的方法,可以把你这个字符串转成json数组,你就可以 var arr= parseJSON(s); arr[1].num就是下标是1的值了

qq_38005982
qq_38005982 回复Luffy_fans_zh: 是。。。可是里面还有别的数值,比如姓名?2个字和3个字差了好多。而且json里不止一个对象
2 个月之前 回复
huang931027
huang931027 $.parseJSON(s)
2 个月之前 回复
qq_38005982
qq_38005982   2017.09.12 09:42

我的想法是获取到这个字符串num“:”的下标处,然后从这个下标截取到往后18位。。。。可是感觉又不对

congge_1993
congge_1993   2017.09.12 10:04

字符串前后加[] 可以用JSONArray.parseArray 转list,或者该串直接 Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
Map map = gson.fromJson(jsonStr,new TypeToken>(){}
.getType()) 转map,然后遍历取出num,再取某一个下标的值

qq_38005982
qq_38005982 我没有转成map而是转成了list,而且下标不确定,现在就是我不太想在接口的逻辑层调用项目里别的imp,实在不行我也会调的,最好能在视图层调用,但我在视图层把String转成集合,接口就报错。。。。我也无语
2 个月之前 回复
u011416989
u011416989   2017.09.12 10:13

如果没有理解错的话应该是java中对json格式的字符串进行解析,这种资料网上比较多。http://www.cnblogs.com/boy1025/p/4551593.html 可以参考一下这个链接,进行处理。

Csdn user default icon
上传中...
上传图片
插入图片