刚开始下载了json-lib-2.2-jdk15.jar包,但是程序报找不JSONObject,JSONArray类,在网上找json移除属性时找不到对应的方法,网上头说使用json需要导入其他相关的包,如commons-lang.jar,ezmorph.jar,commons-logging 1.1.1等等,我把包导了一遍折腾了好久还是运行不成功,后来才发现是包的问题,直接下载json.jar就可以了。
在登录时为了不让用户看看到明文密码,当后台返回的是json格式的字符串,我们可以将json格式的字符串转换成json对象操作移除“password”,从下面数据中 将“password”移除返回
{"code":null, "data":[{"password":"123","role":"aiyo","org":"caizhengju", "createTime":"2016-08-13 00:36:27.0","nickname":"123", "userId":"20B38E63-0B19-B465-3A98-64FEE841FDEC", "username":"123"},{"password":"44","role":"lala","org":"sifaju", "createTime":"2016-08-12 02:42:39.0","nickname":"44", "userId":"8AFC589E-5080-4E25-41E4-139A765CA9D1","username":"44"}], "success":true,"mgs":"查询成功"}设result内容为以上json字符串
我用一个for循环移除“数组中的password”
for (int i=0;i<jsonArray.length();i++) { JSONObject jsonData = (JSONObject) jsonArray.get(i);//得到对象中的第i条记录 System.out.println("data[" + i + "]:" + jsonData.remove("password")); } 输出:data[0]:123 data[1]:44原来以为移除后需要把jsonArray对象put进jsonObject中,其实并不需要,移除后的jsonObject就已经在原来的对象中移除掉“password”.
System.out.println(String.valueOf(jsonObject)); 输出: {"code":null,"data":[{"role":"aaaaa","org":"nongyeju","createTime":"2016-08-12 01:39:44.0","nickname":"33","userId":"7B5FBB51-F93E-DEC2-BBBF-70480A3A9AF5","username":"33"}],"success":true,"mgs":"查询成功"}这样就成功把password去除。
