org.json 用法,求助

luxury515 发布于 2018/06/05 10:29
阅读 433
收藏 0

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 这个判断应该在哪个部分执行?

 

加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部