[ 
https://issues.apache.org/jira/browse/NIFI-14331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Stieglitz updated NIFI-14331:
------------------------------------
    Description: 
NIFI-13843 was aimed to eliminate any fields found in the JSON which were 
defined in a specifed Avro schema. While that fix seems to have solved the 
issue for top level items it did not solve the issue for an undefined key 
within a defined object and for an undefined key  in a defined object for an 
array. Attached are the person.avsc Avro schema and the person_dropfield.json 
which includes undefined top level fields such as single key value pair 
("undefinedKey"), array ("undefinedScalarArray"), object ("undefinedObject") 
and object array ("undefinedObjectArray"). It also includes undefined field 
("undefinedKeyInObject") inside the defined "name" top level object and an 
undefined field ("undefinedKeyInObject") in a "job" object found in the "jobs" 
array. The result after calling ConvertRecord can be seen in the attached 
convertRecordResults.json. Note fields "undefinedKey", "undefinedScalarArray", 
"undefinedObject" and "undefinedObjectArray" all get dropped while fields 
"undefinedKeyInObject" still exist in the "name" object and the "job" object 
inside the "jobs" array.

Currently this behavior is seen in both ConvertRecord and MergeRecord when both 
are configured with a JsonTreeReader and JsonRecordSetWriter.

  was:
NIFI-13843 was aimed to eliminate any fields found in the JSON which were 
defined in a specifed Avro schema. While that fix seems to have solved the 
issue for top level items it did not solve the issue for an undefined key 
within a defined object and for an undefined key  in a defined object for an 
array. Attached are the person.avsc Avro schema and the person_dropfield.json 
which includes undefined top level fields such as single key value pair 
("undefinedKey"), array ("undefinedScalarArray"), object ("undefinedObject") 
and object array ("undefinedObjectArray"). It also includes undefined field 
("undefinedKeyInObject") within the defined "name" top level object and an 
undefined field ("undefinedKeyInObject") in a "job" object found in the "jobs" 
array. The result after calling ConvertRecord can be seen in the attached 
convertRecordResults.json. Note fields "undefinedKey", "undefinedScalarArray", 
"undefinedObject" and "undefinedObjectArray" all get dropped while fields 
"undefinedKeyInObject" still exist in the "name" object and the "job" object 
inside the "jobs" array.

Currently this behavior is seen in both ConvertRecord and MergeRecord when both 
are configured with a JsonTreeReader and JsonRecordSetWriter.


> Unknown embedded fields not dropped by JSON Writer as expected by specified 
> schema
> ----------------------------------------------------------------------------------
>
>                 Key: NIFI-14331
>                 URL: https://issues.apache.org/jira/browse/NIFI-14331
>             Project: Apache NiFi
>          Issue Type: Bug
>            Reporter: Daniel Stieglitz
>            Priority: Major
>         Attachments: convertRecordResults.json, person.avsc, 
> person_dropfield.json
>
>
> NIFI-13843 was aimed to eliminate any fields found in the JSON which were 
> defined in a specifed Avro schema. While that fix seems to have solved the 
> issue for top level items it did not solve the issue for an undefined key 
> within a defined object and for an undefined key  in a defined object for an 
> array. Attached are the person.avsc Avro schema and the person_dropfield.json 
> which includes undefined top level fields such as single key value pair 
> ("undefinedKey"), array ("undefinedScalarArray"), object ("undefinedObject") 
> and object array ("undefinedObjectArray"). It also includes undefined field 
> ("undefinedKeyInObject") inside the defined "name" top level object and an 
> undefined field ("undefinedKeyInObject") in a "job" object found in the 
> "jobs" array. The result after calling ConvertRecord can be seen in the 
> attached convertRecordResults.json. Note fields "undefinedKey", 
> "undefinedScalarArray", "undefinedObject" and "undefinedObjectArray" all get 
> dropped while fields "undefinedKeyInObject" still exist in the "name" object 
> and the "job" object inside the "jobs" array.
> Currently this behavior is seen in both ConvertRecord and MergeRecord when 
> both are configured with a JsonTreeReader and JsonRecordSetWriter.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to