这个是后台对登录用户以及筛选条件的操作

 @Override
public List<SdSdPer> listResults(String sidx, String sord) {
try {
List<SdSdPer> results = Collections.emptyList();
rlist = new ArrayList<SdSdPer>(results);
String setC = setCdtInit(sidx, sord);//setC------>{"chenbanrenid":"****" }json对象
String rstr = oaboSvc.getSdrs(setC);//rstr------>[{"oid":"----":"史红波"}] 所有送达人员的信息json数组
System.out.println("rstr------->"+rstr);
if (bauser.getUserName().equals("admin")) {
if(!StringUtil.isEmpty(rstr) && !rstr.equals("[]")){
rlist = GsonUtil.getObjects(rstr, new TypeToken<ArrayList<SdSdPer>>() {}.getType()) ;
}
} else {
//筛选结果json数组
String rstr1=null ;
String sdrstr=null;
JSONArray jsonarr=JSONArray.fromObject(rstr1);
//json对象
JSONObject jo1 = JSONObject.fromObject(setC);
//获取相应key的值 (登录用户的id值作为承办id)
String chenbanrenid1 = jo1.getString("chenbanrenid");
//json数组
JSONArray jo2=JSONArray.fromObject(rstr);
for (int i = 0; i < jo2.size(); i++) {
//遍历json数组 取出一个json对象
JSONObject jsonobj = jo2.getJSONObject(i);
System.out.println("===================="+jsonobj);
String chenbanrenid2=jsonobj.getString("chenbanId");
//判断两者id是否一致 一致的话将遍历出来的json对象放进 筛选结果json数组
System.out.println("chenbanrenid1==chenbanrenid2:"+chenbanrenid1.equals(chenbanrenid2));
if(chenbanrenid1!=null && chenbanrenid2!=null &&chenbanrenid1.equals(chenbanrenid2)){
//把这条数据添加到json数组中
jsonarr.add(jsonobj);
}
}
jsonarr.remove(0);
sdrstr=jsonarr.toString();
System.out.println("sdrstr----->"+sdrstr);
if(!StringUtil.isEmpty(sdrstr) && !sdrstr.equals("[]")){
rlist = GsonUtil.getObjects(sdrstr, new TypeToken<ArrayList<SdSdPer>>() {}.getType()) ;
}
} return rlist;
} catch (Exception e) {
log.error(e.getMessage());
e.printStackTrace();
}
return null;
}

在这里  首先是判断登录用户   随后对遍历出来的所有结果进行筛选,满足条件的放进一个新的数组。最后删除第一个空的元素。

当然  还有一种思路是把不满足条件的元素直接从所有结果中删除  再直接遍历然后显示到页面上

---------------------------------------------------------------------------------------------------------------------------------------------------------

上述代码整理后:

    @Override
public List<SdSdPer> listResults(String sidx, String sord) {
try {
List<SdSdPer> results = Collections.emptyList();
rlist = new ArrayList<SdSdPer>(results);
String setC = setCdtInit(sidx, sord);//setC------>{"chenbanrenid":"****" }json对象
String rstr = oaboSvc.getSdrs(setC);//rstr------>[{"oid":"----":"史红波"}] 所有送达人员的信息json数组
System.out.println("rstr------->"+rstr);
if (bauser.getUserName().equals("admin")) {
if(!StringUtil.isEmpty(rstr) && !rstr.equals("[]")){
rlist = GsonUtil.getObjects(rstr, new TypeToken<ArrayList<SdSdPer>>() {}.getType()) ;
}
} else {
String sdrstr=checkSdr( sidx, sord);
System.out.println("sdrstr----->"+sdrstr);
if(!StringUtil.isEmpty(sdrstr) && !sdrstr.equals("[]")){
rlist = GsonUtil.getObjects(sdrstr, new TypeToken<ArrayList<SdSdPer>>() {}.getType()) ;
}
} return rlist;
} catch (Exception e) {
log.error(e.getMessage());
e.printStackTrace();
}
return null;
} /**
* 判断送达人员所属
* @return
*/
public String checkSdr(String sidx, String sord){
System.out.println("/////////////"+"人员筛选"+"///////////");
String rstr="";
String rstr1=null ;
String sdrstr=null;
try {
String setC = setCdtInit(sidx, sord);//setC------>{"chenbanrenid":"****" }json对象
rstr = oaboSvc.getSdrs(setC);//rstr------>[{"oid":"----":"史红波"}] 所有送达人员的信息json数组
//筛选结果json数组
JSONArray jsonarr=JSONArray.fromObject(rstr1);
//json对象
JSONObject jo1 = JSONObject.fromObject(setC);
//获取相应key的值 (登录用户的id值作为承办id)
String chenbanrenid1 = jo1.getString("chenbanrenid");
//json数组
JSONArray jo2=JSONArray.fromObject(rstr);
for (int i = 0; i < jo2.size(); i++) {
//遍历json数组 取出一个json对象
JSONObject jsonobj = jo2.getJSONObject(i);
System.out.println("===================="+jsonobj);
String chenbanrenid2=jsonobj.getString("chenbanId");
//判断两者id是否一致 一致的话将遍历出来的json对象放进 筛选结果json数组
System.out.println("chenbanrenid1==chenbanrenid2:"+chenbanrenid1.equals(chenbanrenid2));
if(chenbanrenid1!=null && chenbanrenid2!=null &&chenbanrenid1.equals(chenbanrenid2)){
//把这条数据添加到json数组中
jsonarr.add(jsonobj);
}
}
jsonarr.remove(0);
sdrstr=jsonarr.toString();
} catch (RemoteException e) {
e.printStackTrace();
}
return sdrstr;
}

参考  :json字符串、json对象、数组 三者之间的转换

      java和js中JSONObject,JSONArray,Map,String之间转换——持续更新中

本文仅作为个人记录。

可供参考。

2017-11-13    08:48:56

2017-11-18    09:04:43   更新

最新文章

  1. Josephus环类问题,java实现
  2. JSON对象长度和遍历方法
  3. css 隐藏超长的文本!!!
  4. 队列(Queue)--环形队列、优先队列和双向队列
  5. Servlet 3.0 新特性
  6. Codevs 1083 Cantor表
  7. 支持向量机(SVM)算法的matlab的实现
  8. MVC中HtmlHelper用法大全参考
  9. 最新jhost免费jsp云空间会员邀请码
  10. Openjudge-计算概论(A)-奇数单增序列
  11. 移动端touch触屏滑动事件、滑动触屏事件监听!
  12. [BZOJ2707]走迷宫
  13. Java 三目运算符表达式的一些问题
  14. 报Cannot change version of project facet Dynamic web module to 2.5 错误
  15. vue之生命周期钩子函数之运用
  16. 关于shiro安全框架实现同一用户同一时刻仅可在一个地址登录的技术实现
  17. why?
  18. 不能靠眼睛之 KEIL 中失效代码灰暗特性
  19. Ehcache Monitor使用一例
  20. Hive 数据类型

热门文章

  1. Java注解demo
  2. java同步锁实现方法
  3. java代码调用exe(cmd命令)
  4. Idea发布项目到Docker
  5. JavaScript Array --&gt;map()、filter()、reduce()、forEach()函数的使用
  6. mysql向redis导入数据
  7. JAVA笔记9-多态(动态绑定、池绑定)
  8. Java类路径的问题
  9. 洛谷 P2473 [SCOI2008]奖励关 ( 期望DP )
  10. HGOI 20191106