2015-11-05 65 views
0

我必須使用MultipartEntity發佈這樣的json。如何使用MultipartEntity創建對象的JSON數組?

{ 
arrayName":[ 
    { 
    // object one 
    }, 
    { 
    // object two 
    }] 
} 

我沒有得到一個想法如何使這樣的結構一旦發佈multipartEntity對象,我曾嘗試至今。

MultipartEntity entity = new MultipartEntity(); 
entity.addPart("key","value"); 
..... 
..... 
..... all keys 
httppost.setEntity(entity); 

有什麼辦法讓我可以讓MultipartEntity數組或什麼?

注意:單獨發佈一個json對象它工作得很好。我只想學習如何創建JSONarry格式,一旦張貼與MultipartEntity。

+2

第w。爲什麼要投票? – user3819810

+0

你也可以使用'new StringBody(Array)'' –

+0

發佈數組但是如何將MultipartEntity作爲數組發佈。請解釋。瞭解我的情況 – user3819810

回答

0

你必須將你的json數組轉換爲字符串。

爲此使用Gson庫。 Gson

現在你只需要這樣使用。 不管你模型是如此

ArrayList<CustomClass> objects = new ArrayList<>(); 
objects.add(object); 
objects.add(object); 

,然後只用GSON。

String stringToPost = new Gson().toJson(objects); 

再加入多這個字符串作爲

Stringbody 

服務器端會反序列化字符串JSON數組。

您也可以在添加文件作爲filebody

0

這是上傳使用MultipartEntity-- LIB圖像和JSONArray一個例子:org.apache.http.entity.mime

List students = getStudentList(); 

MultipartEntity studentList = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 

for(int i=0; i<students.size();i++){ 

    try { 
     studentList.addPart("studentList[][name]", new StringBody(String.valueOf(students.get(i).getName()))); 
     studentList.addPart("studentList[][addmission_no]", new StringBody(String.valueOf(students.get(i).getAddmissionNo))); 
     studentList.addPart("studentList[][gender]", new StringBody(String.valueOf(students.get(i).getGender))); 

     File photoImg = new File(students.get(i).getImagePath()); 
     studentList.addPart("studentList[][photo]",new FileBody(photoImg,"image/jpeg")); 


    }catch(Exception e){ 
     e.getMessage(); 
    } 
} 

HttpClient client = new DefaultHttpClient(); 
HttpPost post = new HttpPost(URL); 

post.addHeader("X-Auth-Token", mUserToken); 
post.setEntity(studentList); 

org.apache.http.HttpResponse response = null; 
try { 
    response = client.execute(post); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
HttpEntity httpEntity = response.getEntity(); 
JSONObject myObject; 
try { 
    String result = EntityUtils.toString(httpEntity); 
    // do your work 

} catch (IOException e) { 
    e.printStackTrace(); 
} 
相關問題