2016-07-04 20 views
-1

Dies ist mein Codebenötigen in java letztes Komma entfernen

jsonUIResponse.append("["); 
    String finalStr1 = null; 
    String finalStr2 = null; 
    Iterator itr_1 = skus.iterator(); 
    while (itr_1.hasNext()){ 
     jsonUIResponse.append("{"); 
     //System.out.println("SKU1 in loop :::::: " + itr_1.next()); 
     String str = itr_1.next().toString(); 
     String str1 = str.substring(1, (str.length()-1)); 
     String[] str2 = str1.split(", "); 
     for(int i=0;i<str2.length;i++){ 
      String[] str3 = str2[i].split("="); 
      for(int j=0;j<str3.length;j++){ 
      } 
      finalStr1 = str3[0] ; 
      finalStr2 = str3[1] ; 
      System.out.println("entry2 :: " + finalStr1); 
      System.out.println("entry3 :: " + finalStr2); 

      if (finalStr1.equals("value")) {       
      jsonUIResponse.append("\"value\":\"" + finalStr2 + "\","); 
      }else if (finalStr1.equals("sequence")) { 
       jsonUIResponse.append("\"sequence\":\"" + finalStr2 + "\","); 
      }else if (finalStr1.equals("availableinventory")) { 
       jsonUIResponse.append("\"availableinventory\":\"" + finalStr2 + "\","); 
      }else if (finalStr1.equals("skuid")) { 
       jsonUIResponse.append("\"skuid\":\"" + finalStr2 + "\","); 
      } 
      else if (finalStr1.equals("partnumber")) { 
       jsonUIResponse.append("\"partnumber\":\"" + finalStr2 + "\","); 
      } 
     } 
     jsonUIResponse.append("\"defining\":\"size\""); 
     jsonUIResponse.append("},"); 

    } 
    System.out.println("entryresp3 :: " + jsonUIResponse); 
       jsonUIResponse.append("]"); 
    jsonUIResponse.append("},"); 

Es wäre wie unten Ausgang geben:

[ {"value":"4","sequence":"1","availableinventory":"10","skuid":"24325365","partnumber":"602016000951676","defining":"size"}, {"value":"6","sequence":"2","availableinventory":"10","skuid":"24325371","partnumber":"602016000951677","defining":"size"}, {"value":"8","sequence":"3","availableinventory":"10","skuid":"24325377","partnumber":"602016000951678","defining":"size"}, {"value":"10","sequence":"4","availableinventory":"10","skuid":"24325346","partnumber":"602016000951679","defining":"size"}, {"value":"12","sequence":"5","availableinventory":"10","skuid":"24325349","partnumber":"602016000951680","defining":"size"}, {"value":"14","sequence":"6","availableinventory":"10","skuid":"24325353","partnumber":"602016000951681","defining":"size"}, {"value":"16","sequence":"7","availableinventory":"10","skuid":"24325359","partnumber":"602016000951682","defining":"size"***},***]}]}, 

oben hervorgehoben (fett, kursiv) Komma entfernt werden muss. Bitte helfen Sie hierzu

+5

Warum nicht nur eine richtige JSON-Bibliothek verwenden ?! (Oder drucken Sie einfach nur das Komma, wenn 'itr_1.hasNext()'.) – Biffen

+0

Was ist der Typ von 'jsonUIResponse'? – MrSmith42

+0

Können Sie mir bitte sagen, wie man das benutzt? – Raga

Antwort

1

Es ist besser, JSON-Bibliothek zu verwenden, um das Objekt zu konstruieren. In diesem Fall können Sie es wie folgt tun:

if (itr_1.hasNext()) { 
    jsonUIResponse.append("},"); 
} else { 
    jsonUIResponse.append("}"); 
} 
+0

Danke :) es funktionierte :) – Raga

+2

@Raga Beachten Sie, dass, während dies das Komma Problem löst, Ihr Code noch ungültige JSON produzieren kann. Die "echte" Lösung ist immer noch eine JSON-Bibliothek zu verwenden. – Biffen

+0

@Raga Bitte akzeptieren Sie die Antwort, wenn es funktioniert hat – madatx

0

Meine Lösung eine variable Zählung hinzufügt. Diese Erklärung außerhalb der while-Schleife

int count = 0; 

Ersetzen dieses statemet jsonUIResponse.append ("{"); mit den Folowing Aussagen

if(count == 0){ 
//for the first element, you only need to add { 
jsonUIResponse.append("{"); 
} 
else{ 
jsonUIResponse.append(",{"); 
} 

dann jsonUIResponse.append ("}") ersetzen; mit diesen

jsonUIResponse.append("}"); 
count = 1;