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去除。

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐