json 格式是:
{ data: [ { "currency_id": "0", "symbol": "ttt", "min_trade_size": "0.001", "max_price_digit": "0", "quote_increment": "1000", "sort": "1", "name": "ttt", "max_size_digit": "4", "depth": "1000,10000" }, {},{}「}
这个是属于 json数组 还是 object 呢?
我的的代码如下:
URL url;
try {
url = new URL("https://s3static.okcoinkr.com/json/currency_pair.json");
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream()));
StringBuilder str = new StringBuilder();
String line;
while ((line = in.readLine()) != null)
str.append(line);
in.close();
System.out.println(str);
/*** Write ***/
JSONObject jsonobj = new JSONObject(str.toString());
//JSONObject inobj = jsonobj.getJSONObject("data");
ArrayList<HashMap<String, String>> myArrList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = null;
JSONObject temp = null;
JSONArray arr = jsonobj.getJSONArray("data");
for(int i=0;i<arr.length();i++){
temp = arr.getJSONObject(i);
map.put("currency_id",temp.getString("currency_id"));
map.put("symbol",temp.getString("symbol"));
map.put("min_trade_size",temp.getString("min_trade_size"));
map.put("max_price_digit",temp.getString("max_price_digit"));
map.put("quote_increment",temp.getString("quote_increment"));
map.put("sort",temp.getString("sort"));
map.put("name",temp.getString("name"));
map.put("max_size_digit",temp.getString("max_size_digit"));
map.put("depth",temp.getString("depth"));
myArrList.add(map);
}
可是在
map.put("currency_id",temp.getString("currency_id"));
部分开始抛出异常:
java.lang.NullPointerException
at getfromJson.main(getfromJson.java:53)
因为temp可能是NULL ,所以报错。
但不知道我该怎么判断他的NULL ,if( ! xxx) return false 这个判断应该在哪个部分执行?