目前使用JAVA的几个
安卓编程.我的老师共享这个代码,它使用API,获取它
将Jon文件转换为
JSON阵列文件。 然后,他遍历JSONArray并将其放入ArrayList中,并将它们显示在事件中。
问题是,您的API会返回JSON对象文件,但不知道如何将其正确转换为JSONArray。
导入安卓. util.log;
import org.json.JSONArray;
import org.json.JSONException;
输入org.JSON.JSON object;
import Java.io.buffered inputstream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import Java.io.input streamreader;
import Java.io.unsupportedencodingexception;
import Java.net.httpurl connection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
公共类JSON parser {
String charset='UTF-8 ';
HtTPurl连接连接;
数据输出流wr;
StringBuilder result;
URL Obj;
JSONArray jObj=null;
StringBuilder sbParams;
字符串参数字符串;
publicjsonarraymakehttprequest (字符串URL,字符串方法) )。
sbParams=new StringBuilder (;
if(method.equals('get ' ) ) }
//请求方法is get
if(sbparams.length )!=0}{
url ='? sbParams.toString (;
}
try {
URLobj=newURL(URL;
CONN=(httpurlconnection ) urlObj.openConnection );
Conn.setdooutput(false;
Conn.setrequestmethod('get );
conn.setrequestproperty (' account key ',' pVU56 0hI26DNLeTzlU/Dw==' );
conn.setrequestproperty (' unique userid ',' 33 c 07 f2f-b4c0- 4151-ACD3- e 0829 b 303 d2c ' );
Conn.setrequestproperty(accept,)应用程序/JSON );
Conn.setconnecttimeout(15000;
conn.connect (;
}catch(ioexceptione ) {
e .打印堆栈跟踪(;
}
}
try {
//receivetheresponsefromtheserver
inputstream in=newbufferedinputstream (conn.get inputstream ();
bufferedreaderreader=newbufferedreader (newinputstreamreader (in ) );
result=new StringBuilder (;
字符串线;
while((line=reader.readline ) )!=空) {
result.append (线;
}
log.d(JSONparser ),) result: ) result.tostring );
}catch(ioexceptione ) {
//e.print堆栈跟踪(;
}
conn.disconnect (;
//tryparsethestringtoajsonobject
try {
jobj=newjsonarray (result.tostring ) );
}catch(JSONexceptione ) {
log.e(JSONparser )、) errorparsingdata (e.tostring );
}
//return JSON对象
返回作业;
}
}
API URL及其自定义标题:
URL :http://数据邮件2.my transport.SG/ltaodataservice/taxiavailability
包头市
account key : pvu 560 hi 26 dnletzlu/dw==
unique userid :33 c 07 f2f-b4c0- 4151-ACD3- e 0829 b 303 d2c
accept : APP/JSON
EDIT2:用于获取带自定义标头的原始数据。
http://requestmaker.com/
编辑:这是我得到的JSON。
{
' odata.metadata ' : ' http://数据邮件2.my transport.SG/ltaodataservice/$ metadata # taxiavailability ',
' value': [
{
' Longitude': 103.84009,
' Latitude': 1.35989
(,
{
' Longitude': 103.84679,
' Latitude': 1.35544
(,
{
' Longitude': 103.76928,
' Latitude': 1.4419
}
.
]
}