2016-04-01 13 views
0

次の文字列を変換してプロパティを取得できるようにしようとしています。私はそれらのプロパティを取得し、それらのオブジェクトを作ることによってこれらのDBに挿入しようとしていますJSON文字列をJavaのカスタムオブジェクトに変換する

[{"" ParkingSpaces ;;;; ":"名前; CarPlate; Description; ExpirationDate;所有者 "}、 {A6; T666; Parkingspace A6 ;;}} {{"ParkingSpaces ;;;;"} "A5; T555; Parkingspace A5 ;;} "A7; T777; Parkingspace A7 ;;"}、{"Parking Spaces ;;;": "}}

この文字列はCSVファイルから取得しました。

私はこれにどのようにアプローチできるのか考えている人は誰ですか?

ありがとうございます。

+0

http://stackoverflow.com/questions/15246030/json-string-to-java-をご確認ください。オブジェクト – Alice

+0

'{" ParkingSpaces ;;;; ":"名前; CarPlate;説明;有効期限;所有者 "}'はあなたのJSON文字列ですか? – Alice

+0

@Aliceはい、それはangle-csv-importライブラリで変換したものです。 –

答えて

0

コードはかなり乱雑ですが、実行可能です。あなたは例のようsimple JSON parsingメソッドを使用できます:

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)); 
     } 
    } 

またはuse some bindings like Jackson

+0

このコードを使用した後、私が望むことができました。ありがとうございました。 –

0

JSONには、セミコロンで区切られた文字列がいくつかあります。私はこれをCSV形式とは全く言わないでしょう。

GonのようなJSONパーサーでJSONとJavaオブジェクトを解析できますが、JSONで正しく定義されていないため、Javaオブジェクトから「列」を選択する必要があります。このような

何かが動作するはずです、私はあなたがが、私が持っているよりも多くのエラーチェックを追加することをおすすめします:

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, ", ")); 
    } 
} 
関連する問題