我想要實現的JSONObject但收到錯誤,當我不喜歡下面的代碼錯誤是..如何調試「ModelClass無法映射到一個JSON對象。也許它沒有被標註了@JsonObject?」
04-06 14:26:55.436 32618-460/com.example.muhammad.try1 E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: com.example.muhammad.try1, PID: 32618
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: com.bluelinelabs.logansquare.NoSuchMapperException: Class com.example.muhammad.try1.ModelClass could not be mapped to a JSON object. Perhaps it hasn't been annotated with @JsonObject?
at com.bluelinelabs.logansquare.LoganSquare.mapperFor(LoganSquare.java:304)
at com.bluelinelabs.logansquare.LoganSquare.parse(LoganSquare.java:79)
at com.example.muhammad.try1.MainActivity$JSONAsyncTask.doInBackground(MainActivity.java:298)
at com.example.muhammad.try1.MainActivity$JSONAsyncTask.doInBackground(MainActivity.java:253)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
,並在此行的錯誤點,
ModelClass s = LoganSquare.parse(jsonarray.getJSONObject(i).toString(), ModelClass.class);
我加入這個依賴
compile 'com.bluelinelabs:logansquare:1.3.6'
請幫助我如何解決此錯誤
@JsonObject
public class ModelClass {
@JsonField(name = "longi")
public String longitudeServer;
@JsonField(name = "lati")
public String latitudeServer;
@JsonField(name = "uniqueid")
public String uniqueidSserver;
public ModelClass(){
}
}
這裏是我的DoInBacground功能在那裏我得到錯誤
@Override
protected Boolean doInBackground(String... urls) {
try {
//------------------>>
HttpGet httpGet = new HttpGet(urls[0]);
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httpGet);
int status = response.getStatusLine().getStatusCode();
if (status == 200) {
HttpEntity entity = response.getEntity();
String data = EntityUtils.toString(entity);
JSONArray jsonarray = new JSONArray(data);
latLngList.clear();
for (int i = 0; i < jsonarray.length(); i++) {
ModelClass s = LoganSquare.parse(jsonarray.getJSONObject(i).toString(), ModelClass.class);
LatLng latLng = new LatLng(Double.parseDouble(s.getLatitude()), Double.parseDouble(s.getLongitude())); // Use your server's methods
latLngList.add(latLng);
}
return true;
}
//------------------>>
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
你能分享JSON文件? –
[{「longi」:「74.3229089」,「lati」:「31.5003855」,「uniqueid」:「25c04146a064bce9」}] – Ahmad
這些是我的API的 http://103.8.113.7/hajjapi/api/GPSLocator/GetLocations http://103.8.113.7/hajjapi/api/GPSLocator/AddLocation?longi=longi11&lati=lati11&uniqueid=uniqueid11 – Ahmad