获取JSONObject里所有key

在使用net.sf.json.JSONObject的过程中想到需要遍历JSONObject里的所有key-value的key集合,开始以为通过iterator()可以遍历,或者有相应的keySets()方法,结果发现JSONObject并没有提供能够获取到JSONObject里所有key的方法,所以决定自己写一个方法能够遍历所有的key的方法。

典型的JSON格式如下:

String s = "{'age':22,'sex':'男','userName':'xiapi'}";
String s1 = "{\"age':22,\"sex\":'男',\"userName\":'xiapi'}";

/**
 * 得到JSONObject里的所有key
 * @param jsonObject JSONObject实例对象
 * @return Set
 */
public static Set<String> getAllKeys(JSONObject jsonObject) {
	return getAllKeys(jsonObject.toString());
}

/**
 * 从JSON字符串里得到所有key
 * @param jsonString json字符串
 * @return Set
 */
public static Set<String> getAllKeys(String jsonString) {
	Set<String> set = getHashSetInstance();
	//按照","将json字符串分割成String数组
	String[] keyValue = jsonString.split(",");
	for(int i=0; i<keyValue.length; i++) {
		String s = keyValue[i];
		//找到":"所在的位置,然后截取
		int index = s.indexOf(":");
		//第一个字符串因带有json的"{",需要特殊处理
		if(i==0) {
			set.add(s.substring(2, index-1));
		} else {
			set.add(s.substring(1, index-1));
		}
	}
	return set;
}




  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值