JSON в CSV: несколько строк данных

#java #json #database #csv #read-write

#java #json #База данных #csv #чтение-запись

Вопрос:

Я пытался выполнить запись в файл CSV из файла JSON, используя библиотеку NorthConcepts datapipeline следующим образом, однако у меня возникли проблемы. Данные в файле JSON либо повторяются, либо поля разделены и записаны в разных строках. Например, из приведенного ниже кода я мог бы получить комбинацию следующих строк: Строка 1: createdAt, ID, строка 2: createdAt, ID, IDString, строка 3: createdAt, IDString аналогично. У меня есть около 30 полей и около 4 строк в файле CSV, в которые записываются данные для одной и той же записи, но с заполненными разделенными полями. Кто-нибудь знает, в чем проблема? Файл JSON, из которого я читаю, не содержит повторяющихся данных.

Я считываю данные следующим образом :

 DataReader reader = new JsonReader(new File(FILE))
.addField("CreatedAt", "//array/object/created_at")
.addField("ID", "//array/object/id")
.addField("IDString", "//array/object/id_str")
.addField("Text", "//array/object/actualTweet")
  

Запись данных следующим образом :

 DataWriter writer = new  CSVWriter(new File("../Twix/files/x.csv" ));
JobTemplate.DEFAULT.transfer(reader, writer); 
  

Используемая библиотека : http://northconcepts.com/data-pipeline/
javadocs :http://northconcepts.com/data-pipeline/javadocs /

Пример CSV :

   Name  ProfileImageURL Location    CreatedAt   FollowRequestSent   IsTranslator    DefaultProfile  FavouritesCount ContributorsEnabled
  The Guardian      London                      
  The Guardian      London                      
  The Guardian      London  Thu Nov 05 23:49:19  0000 2009              130 
  The Guardian      London  Thu Nov 05 23:49:19  0000 2009              130 
  The Guardian      London  Thu Nov 05 23:49:19  0000 2009              130 
    http://pbs.twimg.com/profile_images/2814613165/f3c9e3989acac29769ce01b920f526bb_normal.png          FALSE   FALSE   FALSE       FALSE
  

Здесь приведенный выше URL-адрес предназначен для второго столбца.

Комментарии:

1. На самом деле это не помогает, но я думаю, что я бы преобразовал Json в список объектов. Один объект, представляющий строку данных из конечного файла csv. Затем создайте программу записи CSV, которая добавляет заголовки столбцов, а затем записывает каждый объект по мере необходимости. Пустые поля объекта могут стать пустыми строками в файле CSV.

2. Во что вы передаете JsonReader.addRecordBreak() ?

3. Это то, что я передаю в addRecordBreak : //array /object. Хотя в этом JSON есть вложенные объекты, они мне не нужны, поэтому я их не использую. Как вы думаете, это может быть проблемой?