У меня есть несколько файлов JSON, как показано ниже, и я хочу объединить файлы и сохранить данные из них в новый отдельный файл json, как указано ниже:
JSON1:
{
"jobRunID" : "1940",
"mappingResult": [
{
"studyID": "ca209-030",
"fileName": "aesae.csv",
"ref2FilePath": "C://stage/pra/cro/ca/209/030/ref2/aesae.csv",
"columnName": "ae_start_dt",
"currentMapping": "ae_start_dt,ae_st_dt",
"isMapped": "N",
"timeStamp": "20180827093033"
},
{
"studyID": "ca209-004",
"fileName": "labressae.csv",
"ref2FilePath": "C://stage/pra/cro/ca/209/030/ref2/labressae.csv",
"columnName": "ae_verbatim",
"currentMapping": "ae_vtm,ae_vt",
"isMapped": "N",
"timeStamp": "20180827093033"
}
]
}
JSON2:
{
"jobRunID" : "1940",
"mappingResult": [
{
"studyID": "ca209-030",
"fileName": "aesae.csv",
"ref2FilePath": "C://stage/pra/cro/ca/209/030/ref2/aesae.csv",
"columnName": "ae_start_dt",
"currentMapping": "ae_start_dt,ae_st_dt",
"isMapped": "N",
"timeStamp": "20180827093033"
},
{
"studyID": "ca209-004",
"fileName": "labressae.csv",
"ref2FilePath": "C://stage/pra/cro/ca/209/030/ref2/labressae.csv",
"columnName": "ae_verbatim",
"currentMapping": "ae_vtm,ae_vt",
"isMapped": "N",
"timeStamp": "20180827093033"
}
]
}
Ожидаемая O / P:
{
"jobRunID": "1940",
"mappingResult": [
{
"studyID": "ca209-030",
"fileName": "aesae.csv",
"ref2FilePath": "C://stage/pra/cro/ca/209/030/ref2/aesae.csv",
"columnName": "ae_start_dt",
"currentMapping": "ae_start_dt,ae_st_dt",
"isMapped": "N",
"timeStamp": "20180827093033"
},
{
"studyID": "ca209-004",
"fileName": "labressae.csv",
"ref2FilePath": "C://stage/pra/cro/ca/209/030/ref2/labressae.csv",
"columnName": "ae_verbatim",
"currentMapping": "ae_vtm,ae_vt",
"isMapped": "N",
"timeStamp": "20180827093033"
},
{
"studyID": "ca209-030",
"fileName": "aesae.csv",
"ref2FilePath": "C://stage/pra/cro/ca/209/030/ref2/aesae.csv",
"columnName": "ae_start_dt",
"currentMapping": "ae_start_dt,ae_st_dt",
"isMapped": "N",
"timeStamp": "20180827093033"
},
{
"studyID": "ca209-004",
"fileName": "labressae.csv",
"ref2FilePath": "C://stage/pra/cro/ca/209/030/ref2/labressae.csv",
"columnName": "ae_verbatim",
"currentMapping": "ae_vtm,ae_vt",
"isMapped": "N",
"timeStamp": "20180827093033"
}
]
}
Любая помощь будет оценена, так как я новичок в обработке файлов JSON в JAVA.
Согласно приведенным выше JOSN для всех идентичных JobID, я хочу объединить mappingResult из обоих файлов в один файл o / p, как описано выше в ожидаемом o / p.
Я пытаюсь использовать Java, используя приведенный ниже код, но он хорошо читается для 2 входных файлов, но не уверен, как использовать di для нескольких файлов json:
public class MergeJSON {
@JsonMerge
List<Integer> contacts;
public List<Integer> getContacts() {
return contacts;
}
public void setContacts(List<Integer> contacts) {
this.contacts = contacts;
}
@Override
public String toString() {
return contacts.toString();
}
public static void main(String[] args) throws JsonProcessingException, IOException {
TypeReference<Map<String, MergeJSON>> type = new TypeReference<Map<String, MergeJSON>>() {};
InputStream input = new ClassPathResource("C:\\Users\\sweta.h.sharma\\Test.json").getInputStream();
InputStream input2 = new ClassPathResource("C:\\Users\\sweta.h.sharma\\Test1.json").getInputStream();
ObjectMapper mapper = new ObjectMapper();
Object contacts = mapper.readValue(input, type);
mapper.reader(type)
.withValueToUpdate(contacts)
.readValues(input2);
System.out.println(contacts);
}
}