選擇正確的jar包
剛開始下載了json-lib-2.2-jdk15.jar包,但是程序報(bào)找不JSONObject焚鹊,JSONArray類痕届,在網(wǎng)上找json移除屬性時(shí)找不到對應(yīng)的方法,網(wǎng)上頭說使用json需要導(dǎo)入其他相關(guān)的包末患,如commons-lang.jar研叫,ezmorph.jar,commons-logging 1.1.1等等璧针,我把包導(dǎo)了一遍折騰了好久還是運(yùn)行不成功嚷炉,后來才發(fā)現(xiàn)是包的問題,直接下載json.jar就可以了陈莽。
正文
在登錄時(shí)為了不讓用戶看看到明文密碼渤昌,當(dāng)后臺返回的是json格式的字符串虽抄,我們可以將json格式的字符串轉(zhuǎn)換成json對象操作移除“password”走搁,從下面數(shù)據(jù)中 將“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":"查詢成功"}
設(shè)result內(nèi)容為以上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條記錄
我用一個(gè)for循環(huán)移除“數(shù)組中的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進(jìn)jsonObject中独柑,其實(shí)并不需要,移除后的jsonObject就已經(jīng)在原來的對象中移除掉“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去除私植。