2014-05-20 4 views
0

Мне не удалось преобразовать String в JSONArray или JSONObject. Вот код ниже:Невозможно преобразовать строку в JSONArray или JSONObject

JSONArray entries = WebRequest.execute(request); 
if(entries!=null){   
    try{ 
     String temp = entries.getJSONObject(0).getString(WebRequest.CONTENT);  
     String s = temp.toString(); 
     JSONArray cont = new JSONArray(s); 

     Toast.makeText(getBaseContext(), cont.toString(), Toast.LENGTH_LONG).show(); 
    }catch(Exception e){     
    } 
} 

Вот результат Строка:

"[{\ ID_PROJECT \": 528, \ "NM_PROJECT \": \ "TestProject \" ,, \ "NM_TASK \ ": \" TestTask \ "}]"

я не был в состоянии получить тост, используя этот код

+0

пос. т ваши данные json. –

+0

Вы получаете какое-либо исключение? (Исключение e), чтобы поймать (JSONException je), затем попытайтесь выяснить исключение – silwar

+0

Добавить Toast.makeText (getBaseContext(), e.toString(), Toast.LENGTH_LONG) .show(); в вашем блоке catch или даже проще System.out.println (e.toString()), и, пожалуйста, опубликуйте вывод – alex

ответ

1

Это JSON синтаксический разбор вашей JSon строки

String OutputData = ""; 
JSONObject jsonResponse; 

try { 

     /****** Creates a new JSONObject with name/value mappings from the JSON string. ********/ 
     jsonResponse = new JSONObject("{\"data\":[{\"ID_PROJECT\":528,\"NM_PROJECT\":\"TestProject\",\"NM_TASK\":\"TestTask\"}]}"); 

     /***** Returns the value mapped by name if it exists and is a JSONArray. ***/ 
     /******* Returns null otherwise. *******/ 
     JSONArray jsonMainNode = jsonResponse.optJSONArray("data"); 

     /*********** Process each JSON Node ************/ 

     int lengthJsonArr = jsonMainNode.length(); 

     for(int i=0; i < lengthJsonArr; i++) { 
        /****** Get Object for each JSON node.***********/ 
        JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); 

        /******* Fetch node values **********/ 
        int project_id  = Integer.parseInt(jsonChildNode.optString("ID_PROJECT").toString()); 
        String project_name = jsonChildNode.optString("NM_PROJECT").toString(); 
        String task_name = jsonChildNode.optString("NM_TASK").toString(); 


        OutputData += "Node : \n\n  "+ project_id +" | " 
                + project_name +" | " 
                + task_name +" \n\n "; 

     } 

     /************ Show Output on screen/activity **********/ 
     output.setText(OutputData); 

    } catch (JSONException e) { 

       e.printStackTrace(); 
      } 

     } 
    }); 
} 
Смежные вопросы