Java中的JSONP(JSON with Padding)可以讓我們在客戶端跨域請求數據并接收數據。這種技術可以讓我們取回從不同域返回的數據,從而實現跨域數據請求。
//首先,我們需要將JSONP實例化 JSONP jsonp = new JSONP(); //設置回調函數,這里我們將回調函數名稱設置為"showData" jsonp.setCallbackFunction("showData"); //將需要請求的數據指定為url,這里我們指定的是一個example.com提供的數據接口 jsonp.setUrl("http://example.com/data.json"); //執行json解析操作 String response = jsonp.execute();
這時,我們就能夠獲取到從指定的url返回的數據了。接下來,我們需要將JSONP數據轉化為JSON數據格式,以便在客戶端進行解析和展示。使用以下方法可以將JSONP轉為JSON。
//使用字符串函數獲取回調函數名稱 String callbackFunction = response.substring(0, response.indexOf("(")); //使用正則表達式獲取JSON數據 String jsonData = response.replaceAll("\\s+", "").replace(callbackFunction + "(", "").replace(");", ""); //將JSON數據格式化輸出 System.out.println(new JSONObject(jsonData).toString(2));
這樣,我們就能夠將JSONP數據轉化為JSON數據格式了。在實際的應用中,一般情況下,我們都會使用前端JavaScript來處理JSONP請求和JSON數據格式化。