Java org.json基本用法(JSONObject/JSONArray)

org.json.JSONObject

JSONObject内部封装了一个HashMap,用于存储json对象的属性名和属性值。其中属性名为String类型。

//JSONObject构造1
JSONObject obj = new JSONObject();
System.out.println(obj.toString());//输出空对象: {}
obj.put("key1", 1);
obj.put("key2", 2);
System.out.println(obj.toString());//输出: {"key2":2,"key1":1}

//JSONObject构造2,参数传入json格式的字符串
JSONObject obj2 = new JSONObject(obj.toString());
System.out.println(obj2.toString());

//JSONObject属性遍历
Iterator<String> it = obj2.keySet().iterator();
while (it.hasNext()) {
	String key = it.next();
	System.out.println(key+"="+(int)obj2.get(key));
}

//获取JSONObject对象某个属性的值
String key = "key1";
if(obj.has(key)) {
	System.out.println(obj.get(key));
}

TIPS: 在用get(String key)获取JSONObject对象的属性值的时候,出于健壮性的考虑应通过has(String key)判断一下,否则可能会抛JSONException异常,可能不同版本JSONObject实现会有差异。

org.json.JSONArray

org.json.JSONArray内部实现则是封装了一个ArrayList

//JSONArray构造1
JSONArray array = new JSONArray();
array.put(obj);//这里是put,而不是add
array.put(obj);
System.out.println(array.toString());

//JSONArray构造2,传入json数组格式的字符串
String jsonArrStr = "[{\"1000\":2,\"100\":111},{\"1000\":2,\"100\":222}]";
array = new JSONArray(jsonArrStr);
System.out.println(array.toString());

//JSONArray遍历
for(int i=0; i<array.length(); i++) {
	JSONObject jsonObj = array.getJSONObject(i);
	System.out.println(jsonObj.toString());
}

你可能感兴趣的:(Java基础)