java中json字符串移除指定属性

    xiaoxiao2026-03-10  6

    java中json字符串移除指定属性

    选择正确的jar包

    刚开始下载了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字符串

    操作result移除password

    JSONObject jsonObject=new JSONObject(s); //可以将json格式的字符串变成json对象 JSONArray jsonArray= (JSONArray) jsonObject.get("data"); 输出jsonArray为: [{"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"}] JSONObject jb= (JSONObject) json.get(i); //得到对象中的第i条记录

    我用一个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去除。

    转载请注明原文地址: https://ju.6miu.com/read-1307817.html
    最新回复(0)