2016-04-01 22 views
0

Aşağıdaki dizeyi dönüştürmeyi deniyorum, böylece özellikleri buradan alabiliyorum. Onların özelliklerini alma ve daha sonra yapım nesneleriBir JSON dizesini java'daki özel nesnelere dönüştürme

[onlardan tarafından DB Bu eklemek çalışıyorum { "ParkingSpaces ;;;;": "; CarPlate; Açıklaması Ad EXPIRATIONDATE; Sahibi"}, {"ParkingSpaces ;;;;": "A5; T555; Parkingspace A5 ;;"}, {"ParkingSpaces ;;;;": "A6; T666; Parkingspace A6 ;;"}, {"ParkingSpaces ;;;;" : "A7; T777; Parkingspace A7 ;;"}, { "ParkingSpaces ;;;;": ""}]

bir CSV dosyasından bu dize var.

Buna nasıl yaklaşabileceğime dair bir fikri olan var mı?

Şimdiden teşekkürler.

+0

kontrol ediniz http://stackoverflow.com/questions/15246030/json-string-to-java- nesne – Alice

+0

'{" ParkingSpaces ;;;; ":" Ad; CarPlate; Açıklama; ExpirationDate; Owner "}' senin JSON Dizginiz mi? – Alice

+0

@Alice evet, angular-csv-import kütüphanesi ile dönüştürdükten sonra geri döndüm. –

cevap

0

Sizin kodunuz oldukça karışık, ancak yapılabilir. Ya örnekte olduğu gibi simple JSON parsing yöntemi kullanabilirsiniz:

final String json = "[{\"ParkingSpaces;;;;\":\"Name;CarPlate;Description;ExpirationDate;Owner\"," 
{\"ParkingSpaces;;;;\":\"A5;T555;Parkingspace A5;;\"},{\"ParkingSpaces;;;;\":\"A6;T666;Parkingspace A6;;\"},{\"ParkingSpaces;;;;\":\"A7;T777;Parkingspace A7;;\"},{\"ParkingSpaces;;;;\":\"\"}]"; 
     final org.json.JSONArray jSONArray = new JSONArray(json); 
     for (int i = 0; i < jSONArray.length(); i++) { 
      final org.json.JSONObject jSONObject = jSONArray.getJSONObject(i); 
      final String parkingSpaces = jSONObject.getString("ParkingSpaces;;;;"); 
      final String spaces[] = parkingSpaces.split(";"); 
      System.out.println(Arrays.toString(spaces)); 
     } 
    } 

veya use some bindings like Jackson.

+0

Bu kod parçasını kullandıktan sonra istediğimi yapabilirdim, teşekkürler. –

0

Orada neler var, içinde noktalı virgülle ayrılmış dizeleri olan JSON var. Buna hiç bir CSV formatı demezdim.

JSON'u Java nesnelerini Gson gibi bir JSON ayrıştırıcısıyla ayrıştırabilirsiniz, ancak JSON'da düzgün bir şekilde tanımlanmadıklarından, Java nesnesinin "sütunlarını" seçmeniz gerekir. Böyle bir şey çalışması gerekir

, sana olsa var daha kontrol fazla hata eklemek tavsiye:

public class DBEntry { 

    @SerializedName("ParkingSpaces;;;;") 
    @Expose 
    private String ParkingSpaces; 

    public String getParkingSpaces() { 
     return ParkingSpaces; 
    } 

    public void setParkingSpaces(String ParkingSpaces) { 
     this.ParkingSpaces = ParkingSpaces; 
    } 

} 

public static void main(String[] args) { 
    String json = "[{\"ParkingSpaces;;;;\":\"Name;CarPlate;Description;ExpirationDate;Owner\"},{\"ParkingSpaces;;;;\":\"A5;T555;Parkingspace A5;;\"},{\"ParkingSpaces;;;;\":\"A6;T666;Parkingspace A6;;\"},{\"ParkingSpaces;;;;\":\"A7;T777;Parkingspace A7;;\"},{\"ParkingSpaces;;;;\":\"\"}]"; 

    // Convert JSON to java objects using the popular Gson library 
    Gson gson = new Gson(); 
    Type collectionType = new TypeToken<ArrayList<DBEntry>>(){}.getType(); 
    List<DBEntry> results = gson.fromJson(json, collectionType); 

    boolean header = true; 
    for (DBEntry result : results) { 
     // Ignore the header and empty rows 
     if (header || result.getParkingSpaces().isEmpty()) { header = false; continue; } 

     // Grab the columns from the parking spaces string 
     String[] columns = result.getParkingSpaces().split(";"); 

     // TODO: Store this record in your database 
     System.out.println("New entry: " + StringUtils.join(columns, ", ")); 
    } 
} 
İlgili konular