Как конвертировать CSV в JSON в Apache Camel - PullRequest
1 голос
/ 01 мая 2019

Я смог преобразовать CSV в Pojo с помощью верблюда Бинди. Но мне нужно преобразовать строку в JSON легко?

Я могу разбить строку. Но есть ли эффективные способы сделать это?

Мой класс поё: -

@CsvRecord(separator = ",",skipFirstLine = true)

public class Sample
{

 //some fields

}

Класс процессора: -

String samples=exchange.getIn().getBody(String.class);

String[] strings=samples.split("}");
System.out.println(strings[0]);
for(String strings1:strings)
{
    String[] strings2=strings1.split("'");
    for(int i=0;i<strings2.length;i++)
    {
        if(i%2==1) {
            System.out.println(strings2[i]);
        }
    }
}
//Is there is efficient method we can do to convert the String to list of json. Assuming csv contains multiple record

Построитель маршрутов: -

public class SimpleRouteBuilder extends RouteBuilder {
    private final BindyCsvDataFormat bindy=new BindyCsvDataFormat(com.company.model.Sample.class);;
    @Override
    public void configure()  {

      from("file:/path/?fileName=CCO_SUMMARY_20190315_165800 copy.csv&noop=true").unmarshal(bindy).process(new MyProcessor()).
               to("file:/path/?fileName=akshay.txt");

    }
}

Хотите знать, есть ли эффективный метод для решения этой проблемы?

1 Ответ

0 голосов
/ 01 мая 2019

.json ()

см. формат данных camel json т.е.: .json().log("${body}")

В вашем сценарии, например:

from("file:/path/?fileName=CCO_SUMMARY_20190315_165800 copy.csv&noop=true")
    .unmarshal(bindy)
    .marshal()
    .json(JsonLibrary.Jackson).log("${body}")
    .to("file:/path/?fileName=akshay.txt");

, где json(JsonLibrary.Jackson) заставляет использовать библиотеку Джексона для преобразования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...