Java之JSONObject存取值以及和HashMap區別, optString()和getString()區別和他的遍歷方式
阿新 • • 發佈:2018-11-05
結論:
1.JSONObject和HashMap用法上是一樣的,用put()方法存對於的Key-values鍵值對,取可用optString(key)和getString(key),get(key),存入的是什麼型別,取出來的時候就是什麼型別
2**.optString()在沒找到key的時候返回空,而**getString()為找到的時候會丟擲錯誤
3.遍歷: 可以用Iterator實現便利,方法和map一樣
package Test;
import java.util.HashMap;
import java.util.Iterator;
import org.json .JSONObject;
public class JsonObjectTest {
/**
* { "err_no":500, "err_msg":"notsupport.", "sn":"abcdefgh", "idx":1 }
*/
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("err_no", 500);
map.put("err_msg", "notsupport.");
String result1 = (String) map.get ("err_msg");
System.out.println("map直接列印結果:" + map);
System.out.println("maptoString列印:" + map.toString());
System.out.println("map取值err_msg列印:" + result1);
JSONObject jsonObject = new JSONObject();
jsonObject.put("err_no", 500);
jsonObject.put("err_msg" , "notsupport.");
jsonObject.put("idx", 1);
String result2 = jsonObject.optString("err_msg");
String result3 = jsonObject.getString("err_msg");
String result4 = jsonObject.optString("err_no1");
// String result5 = jsonObject.getString("err_no1");
// System.out.println("result5: "+result5); 列印報錯
System.out.println("直接列印結果:" + jsonObject);
System.out.println("toString列印結果:" + jsonObject.toString());
System.out.println("result2結果: " + result2);
System.out.println("result3結果: " + result3);
System.out.println("result4結果: " + result4);
System.out.println(jsonObject.get("idx"));
Iterator iter = jsonObject.keys();
while(iter.hasNext()) {
String key=(String)iter.next();
Object values=jsonObject.get(key);
}
}
}