Java中JSON字符串指定某个key进行加密

Json字符串:{"code":"0000","success":true,"results":{"code":"0000","userId":364,"openid":"null","shopId":null,"brandId":66,"roleId":1,"entityName":null,"menuList":[{"id":258,"name":"xxx","pid":255,"type":2},{"id":259,"name":"xxx","pid":255,"type":2}],"loginName":"xxx"}}
需求:shopId,id 这两个属性值进行加密
有什么好的办法,正则替换什么的。

因为字符串内容是未知的,不能装换成JSON对象操作

已经解决了
图片说明
图片说明

哦看到了,其实也可以用instanceof判断,不过还是没indexOf判断的精确。

是用阿里巴巴的fastjson 将字符串转成 JSONOBject 对象,从对象中到 shopID, id值,并进行加密 后重新赋值,在转成json字符串

可以先把json串转成json对象,然后加密参数,再将json对象转换成json字符串
例如:
String jsonStr = "{\"shopId\":\"200\"}";
JSONObject jSONObject = JSONObject.fromObject(jsonStr);
String shopId = jSONObject.getString("shopId");
jSONObject.put("shopId", "加密后的字符串");

再转换成JSON对象,再将JSON对象中的id和shopId两个属性进行加密,最后再转换成json字符串。

JSONObject jsonObj= JSONObject.fromObject(jsonStr);

String value= jsonObj.getString(key);

JSONObject jsonObj= JSONObject.fromObject(jsonStr);
String value= jsonObj.getString(key);

用google的Gson转嘛。

看看能不能转成Map,然后遍历

用android studio 的插件,gsonformat,把json串放进去,自动生成bean,省事。。。

已经解决了 在内容里面有代码