2016-12-10 3 views
0

私は2つの列、キーと値を持つdbを持っています。記録:私はスプリット機能を入れていますスプリットJavaのスプリング

[{"key":"1","value":"desc 1"},{"key":"2","value":"desc 2"},{"key":"3", "value":"desc 3"}] 

------------------------------------ 
| key |   value    | 
------------------------------------ 
| A | 1,desc 1;2,desc 2;3,desc 3 | 
------------------------------------ 

私は値列を分割したいがJSON形式になりますか?サービス中ですか? 2分割にはあまりにも難しいためです。この問題を解決するには?

おかげで、アプリケーションは通常、この値で働いている方法によって異なり ボビー

+0

このデータはどのように取得していますか?そこにコピーしたものは、mysqlのコマンドラインインターフェイスのように見えます。上記の文字列をそのまま解析しようとしていますか?もしあなたがjavaを使ってdbからこのデータを引っ張っているなら、あなたはすべての - と|を使わずに文字列を直接得ることができるからです。 chars。この文字列を書かれたとおりに使用する必要がある場合は、 - および|を削除してください。 4行目だけを取得する – badperson

答えて

3

。通常のケースでこの列の特定のデータを使用している場合は、すでにリポジトリレベルでこれを解析しています。

public static void main(String[] args) { 

    // You actually get this from DB 
    String value = "1,desc 1;2,desc 2;3,desc 3"; 

    JSONArray j = new JSONArray(); 
    Stream.of(value.split(";")).forEach((pair -> { 
     String[] keyValue = pair.split(","); 

     JSONObject o = new JSONObject(); 
     o.put("key", keyValue[0]); 
     o.put("value", keyValue[1]); 
     j.put(o); 

    })); 


    System.out.println(j); 

}