Вопрос по json, java, talend – Парсер JSON для Talend

2

Мне нужна помощь в разработке стратегии для анализа документов JSON в задании Talend (задание Java, а не Perl). Я использую Talend Version: 5.0.2 и работаю на Mac, планируя работать на Linux.

К сожалению, я не могу использовать компонент tFileInputJSON из-за формата моих файлов - каждый файл содержит несколько сотен документов JSON, а полный документ JSON занимает одну строку в файле. Я думаю, что правильное решение - читать файл построчно, затем передавать его в анализатор JSON и оттуда отправлять результаты остальной части работы.

Как я вижу это мои варианты:

а) отправить строку ввода в какой-то анализатор Java JSON. Если это стратегия, которую мне нужно принять, я хотел бы получить несколько советов о том, как справиться с результатами и получить

б) найти компонент Talend, который анализирует документы JSON, но в потоке, а не в одном файле в допустимом формате JSON.

Я искал этот компонент, но, похоже, не могу его найти. Из моего поиска кажется, что даже компонент tFileInputJSON является относительно новым.

I definitely know this is something Java can do pretty easily. My problem is getting the whole thing synced up within the Talend framework.

У кого-нибудь есть совет, куда мне обратиться дальше?

Заранее спасибо.

Привет всем - я закончил тем, что пошел с ответом, предоставленным людьми из Talend Forge -talendforge.org/forum/viewtopic.php?pid=82606#p82606 - В то время как я сделал progrss с предложением Лэйн, более хакерский подход, предложенный в Talend Forge, делает работу для меня сейчас. badgley

Ваш Ответ

2   ответа
1

деле «Код» (в окне хранилища слева), щелкнуть правой кнопкой мыши по подпрограммам и создать собственную подпрограмму. Это позволяет вам написать функцию Java, которая затем может быть вызвана из любого места вашей работы (tMap, tJava и т. Д.). Вы можете прочитать свой входной файл и вызвать функцию в каждой строке / элементе или что-то еще, что делает то, что вы хотите.

Как и любая функция Java, подпрограмма может затем записывать в файл, печатать на экран или возвращать какой-либо объект списка, с которым вы можете в дальнейшем работать в другом tJava, tJavaFlex, tJavaRow или любых других компонентах Talend в вашей работе.

Это может показаться немного странным, но вы можете многое сделать, просто используя пользовательские процедуры.

Если вы хотите пройти весь путь и создать свой собственный компонент, это может быть хорошим началом:http://www.talendforge.org/forum/viewtopic.php?id=17650 Конечно, создание компонентов занимает гораздо больше времени, но может быть полезно, если вы думаете, что вы будете повторно использовать этот код в нескольких проектах / случаях.

Error: User Rate Limit Exceeded badgley
Error: User Rate Limit Exceeded badgley
0

JSON Object для каждой строки.

final BufferedReader br = new BufferedReader(new FileReader(file));
String line;

while ((line = br.readLine()) != null)         // read until EOF
{
  final JSONObject json = new JSONObject(line);
  ...
}

br.close();
Error: User Rate Limit Exceeded badgley

Похожие вопросы