2016-04-07 21 views
0

Ich muss dies als JsonArray anstelle von Objekten analysieren, aber es Dosent scheint richtig zu funktionieren.Android JSON Parsing mit multipartEntity

meine Ausgabe ist [ "{" TransactionVolume ":" 34" , "TransactionitemID": "2"} "]

ich es [{" TransactionVolume "sein müssen:" 34" ,“ TransactionitemID ":" 2" }]

dies ist ein Teil meines Code

public class TransactionItem { 

    public String TransactionitemID; 
    public String TransactionVolume; 

    public String getTransactionVolume() { 
     return TransactionVolume; 
    } 

    public void setTransactionVolume(String transactionVolume) { 
     TransactionVolume = transactionVolume; 
    } 

    public String getTransactionitemID() { 
     return TransactionitemID; 
    } 

    public void setTransactionitemID(String transactionitemID) { 
     TransactionitemID = transactionitemID; 
    } 


} 

TransactionItem transactionItem = new TransactionItem(); 
transactionItem.setTransactionitemID(article.toString()); 
transactionItem.setTransactionVolume(volume.toString()); 


String transitemjson = gson.toJson(transactionItem); 
JSONArray ja = new JSONArray(); 
ja.put(transitemjson); 
String test = ja.toString().replaceAll("\\\\\"", "\""); 

Ja richtig zu sein scheint, wo die Ausgabe

["{\ TransactionVolume \": \ "34 \", \ "TransactionitemID \": \ "2 \"} "]

Also ich habe versucht, alle mit" aber immer noch "zu ersetzen das Betteln und das Ende.

Trimmen der Schnur scheint keine gute Idee, aber es könnte funktionieren. Gibt es einen anderen Weg, dies zu tun?

EDIT

Das hat mich zum Ziel!

ArrayList<TransactionItem> Transactionlist = new ArrayList<>(); 

     for (int i=0; i < CompleteArticle.size(); i++) { 
      String id = CompleteArticle.get(i); 
      String Volume = CompleteVolume.get(i); 
      TransactionItem transactionItem = new TransactionItem(); 
      transactionItem.setTransactionitemID(id); 
      transactionItem.setTransactionVolume(Volume); 
      //transactionitems.transactionitems.add(transactionItem); 
      Transactionlist.add(transactionItem); 
     } 


    JsonElement transitemjson = gson.toJsonTree(transactionItems); 

Output:

[{ "TransactionVolume": "1", "TransactionitemID": "5"}, { "TransactionVolume": "3", "TransactionitemID": "3" }]

Antwort

1

Sie müssen eine JSONElement anstelle einer String verwenden. diese Zeile ersetzen:

String transitemjson = gson.toJson(transactionItem); 

dies mit:

JSONElement transitemjson = gson.toJsonTree(transactionItem); 
+0

Hat die Arbeit! Danke Kumpel. – Jack