Talend JSON 结构
Talend JSON structure
我正在努力处理我的 mongodb 输出,因为我不知道如何构建我的 JSON 树。
基本上我在行的 "Languages" 属性中有这个:
Languages##English##fluent##German##beginner##
我想要:
"languages": [
{
"language": "English",
"level": "fluent"
},
{
"language": "German",
"level": "beginner"
}
]
我已经在 tJavaRow 中试过了:
String delims = "##";
String[] tokens = row3.langues.split(delims);
int i = 0;
while (i < tokens.length) {
if(i%2==0){
row5.langue=tokens[i];
}
else{
row5.niveau=tokens[i];
}
i++;
}
但我只得到第 5 行的最后一个条目,而我想复制这些行
是否可以在例程或 java 组件中创建我自己的列?
对于那些感兴趣的人,我通过在 tJavaRow 中创建自己的 MongoDBOuput 解决了这个问题。
通过这种方式,我可以更好地控制 JSON 模式的创建。
例如(在 tJavaRow 中):
/*Get the MongoDB connection*/
DB db = (DB)globalMap.get("db_tMongoDBConnection_1");
/*Get the collection*/
DBCollection coll = db.getCollection("cv");
/*Create the JSON object*/
BasicDBObject doc = new BasicDBObject();
doc.append("id", Integer.valueOf(input_row.id));
doc.append("personne", input_row.personne);
doc.append("position", input_row.position);
BasicDBList langues= new BasicDBList();
String delim="##";
String[] tokens = input_row.langues.split(delim);
int i = 0;
while (i < tokens.length) {
if(i%2==0){
res.add(new BasicDBObject("langue",tokens[i]).append("niveau",tokens[i+1]));
}
i++;
}
doc.append("langues", langues);
/*Insert in collection*/
coll.insert(doc);
我在 MongoDB 中的对象:
{
"_id": ObjectID("556da6a905f34ffea3e3dbbe"),
"id": 1,
"personne": "Paul Dupont",
"position": "Consultant BI",
"age": "23 ans",
"langues": [
{
"langue": "Anglais",
"niveau": "courant"
},
{
"langue": "Allemand",
"niveau": "intermediaire"
}
]
}
我正在努力处理我的 mongodb 输出,因为我不知道如何构建我的 JSON 树。 基本上我在行的 "Languages" 属性中有这个:
Languages##English##fluent##German##beginner##
我想要:
"languages": [
{
"language": "English",
"level": "fluent"
},
{
"language": "German",
"level": "beginner"
}
]
我已经在 tJavaRow 中试过了:
String delims = "##";
String[] tokens = row3.langues.split(delims);
int i = 0;
while (i < tokens.length) {
if(i%2==0){
row5.langue=tokens[i];
}
else{
row5.niveau=tokens[i];
}
i++;
}
但我只得到第 5 行的最后一个条目,而我想复制这些行
是否可以在例程或 java 组件中创建我自己的列?
对于那些感兴趣的人,我通过在 tJavaRow 中创建自己的 MongoDBOuput 解决了这个问题。
通过这种方式,我可以更好地控制 JSON 模式的创建。
例如(在 tJavaRow 中):
/*Get the MongoDB connection*/
DB db = (DB)globalMap.get("db_tMongoDBConnection_1");
/*Get the collection*/
DBCollection coll = db.getCollection("cv");
/*Create the JSON object*/
BasicDBObject doc = new BasicDBObject();
doc.append("id", Integer.valueOf(input_row.id));
doc.append("personne", input_row.personne);
doc.append("position", input_row.position);
BasicDBList langues= new BasicDBList();
String delim="##";
String[] tokens = input_row.langues.split(delim);
int i = 0;
while (i < tokens.length) {
if(i%2==0){
res.add(new BasicDBObject("langue",tokens[i]).append("niveau",tokens[i+1]));
}
i++;
}
doc.append("langues", langues);
/*Insert in collection*/
coll.insert(doc);
我在 MongoDB 中的对象:
{
"_id": ObjectID("556da6a905f34ffea3e3dbbe"),
"id": 1,
"personne": "Paul Dupont",
"position": "Consultant BI",
"age": "23 ans",
"langues": [
{
"langue": "Anglais",
"niveau": "courant"
},
{
"langue": "Allemand",
"niveau": "intermediaire"
}
]
}