2013-04-30 3 views
0

Я звоню в веб-службу, которая будет делать сообщение в одной из моих клиентских баз данных. Метод ожидает sessoionId и массив с зазубринами. Он также возвращает зубчатый массив. У меня проблема с передачей массива с jagged в JSONStringer и StringEntity. Ниже приведен простой моего кода внутри doinbackground:Передача Jagged Array в JSONoBJECT и StringEntity

if(sessionId != "") 
      { 
        URL = "http://10.0.2.2:88/Student/Grade"; 
        requestPost = new HttpPost(URL); 
        requestPost.setHeader("Accept", "application/json"); 
        requestPost.setHeader("Content-type", "application/json"); 

        List<String[]> parameters = new ArrayList<String[]>(); 
        parameters.add(new String[] {"StudentID","SSN"}); 
        parameters.add(new String[] {"StudentLastName", "LastName"}); 
        parameters.add(new String[] {"StudentGrade","Grade"}); 

        JSONStringer VistAConnect = new JSONStringer() 
        .object() 
        .key("sessionId").value(sessionId) 

// Я не уверен, как отформатировать jaggedArray здесь.

    .key("JaggedArrayParameters").value(parameters) 
        .endObject(); 

// Преобразование ниже параметра в строке не помогает.

     StringEntity entity = new StringEntity(VistAConnect.toString()); 
         requestPost.setEntity(entity); 
         httpClient = new DefaultHttpClient(); 
         HttpResponse response1 = httpClient.execute(requestPost); 
         HttpEntity responseEntity1 = response1.getEntity(); 

         char[] buffer1 = new char[(int)responseEntity1.getContentLength()]; 
         InputStream stream1 =responseEntity1.getContent(); 
         InputStreamReader reader1 = new InputStreamReader(stream1); 
         reader1.read(buffer1); 
         stream1.close(); 

// когда я смотрю на resultFromPost, он не с сообщением строка не отформатирована должным образом.

     resultFromPost= new String(buffer1); 

      } 

Любая помощь или предложение было бы весьма признателен.

+0

определяют зазубренный массив в этом контексте, с примером – njzk2

+0

Он ожидает студента [1] [0] = «StudentID» и ученик [1] ​​[1] = «543» –

+0

Вот лучший пример [[«Студент»] ["123"], ["LastName"] ["Smith"], ["StudentGrade"] [ "А"]]. –

ответ

0

Параметры должны быть построены с использованием JSONArray вместо

List<String> or String[][] = {new [] String{"example","text"} 
}; 
List<String[]> parameters = new ArrayList<String[]>(); 
parameters.add(new String[] {"StudentID","SSN"}); 
parameters.add(new String[] {"StudentLastName", "LastName"}); 
parameters.add(new String[] {"StudentGrade","Grade"}); 

Вместо этого используйте это:

JSONArray jArray= new JSONArray(); 
jArray.put(0, "example"); 
jArray.put(1, "Text");