2015-06-17 62 views
-1

我寫了一個android應用程序,我使用mongoDB。但我有一個問題。MongoDB restapi for Android

我想使用RestApi。但是,當我使用,我不能解析這個文本。

如果我編寫Mozilla。我看得很清楚。 ([{ 「_id」{ 「$ OID」: 「5563962ae4b01374806901b2」}, 「TEMPLATE_NAME」: 「遊戲」}])

,但我不能解析

我嘗試JSONObject的,但給一個error.Error消息:

值[{ 「_id」:{ 「$ OID」: 「5563962ae4b01374806901b2」}, 「TEMPLATE_NAME」: 「遊戲」}]類型org.json.JSONArray的不能轉換到的JSONObject

 restapiConnect apirest=new restapiConnect();//This variable my api access class 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpContext localContext = new BasicHttpContext(); 

     String docUrl=apirest.getDocumentQuery("templates","'template_name':'Game'"); 
     HttpGet httpGet = new HttpGet(docUrl); 
     String text = null; 
     HttpResponse response = httpClient.execute(httpGet, localContext); 


     HttpEntity entity = response.getEntity(); 
     text = getASCIIContentFromEntity(entity); 

     JSONObject obj=new JSONObject(text); 
     template=new String[1]; 
     text = obj.getString("template_name"); 

僅錯誤JSONObject行

public class restapiConnect{ 
public String getDocumentQuery(String col,String query) { 

    return getURL() + "databases/" + getDatabase() + "/collections/" + col + "?q=" + URLEncoder.encode("{" + query + "}")+"&apiKey=" + getApi(); 
}} 

我創建了其他方法(geturl(),getdatabase())。這個班沒有錯誤。

回答

0

您收到此錯誤becouse

[{ 「_id」:{ 「$ OID」: 「5563962ae4b01374806901b2」}, 「TEMPLATE_NAME」: 「遊戲」}]

這是JSONArray不JSONObject

所以你需要創建JSONArray對象,然後getJSONObject fron它。

 text = getASCIIContentFromEntity(entity); 

     JSONArray array=new JSONArray(text); 
     JSONObject obj = array.getJSONObject(0); 

希望這將工作

+0

給出一個錯誤。 「內容已被使用」@ Gaurav-Polekar –

+0

您在哪一行出錯? (text.length() - 2);' 'JSONObject obj = new JSONObject(text);' – Gaurav