[
https://issues.apache.org/jira/browse/NIFI-4269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16136830#comment-16136830
]
ASF GitHub Bot commented on NIFI-4269:
--------------------------------------
Github user mattyb149 commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2063#discussion_r134487688
--- Diff:
nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java
---
@@ -151,17 +172,34 @@ public ValidationResult validate(final String
subject, final String value, final
return propertyDescriptors;
}
- private ObjectMapper mapper = new ObjectMapper();
+ private ObjectMapper mapper;
//Turn a list of Mongo result documents into a String representation
of a JSON array
- private String buildBatch(List<Document> documents) throws IOException
{
- List<Map> docs = new ArrayList<>();
- for (Document document : documents) {
- String asJson = document.toJson();
- docs.add(mapper.readValue(asJson, Map.class));
+ private String buildBatch(List<Document> documents, String
jsonTypeSetting) throws IOException {
+ StringBuilder builder = new StringBuilder();
+ for (int index = 0; index < documents.size(); index++) {
+ Document document = documents.get(index);
+ String asJson;
+ if (jsonTypeSetting.equals(JSON_TYPE_NORMAL)) {
+ asJson =
mapper.writerWithDefaultPrettyPrinter().writeValueAsString(document);
+ } else {
+ asJson = document.toJson(new JsonWriterSettings(true));
+ }
+ builder
+ .append(asJson)
+ .append( (documents.size() > 1 && index + 1 <
documents.size()) ? ", " : "" );
}
- return mapper.writeValueAsString(docs);
+ return "[" + builder.toString() + "]";
//mapper.writerWithDefaultPrettyPrinter().writeValueAsString(docs);
--- End diff --
This looks like a dead code comment, if it doesn't inform the line please
remove :)
> GetMongo should be able to provide pure JSON as well as "extended JSON"
> -----------------------------------------------------------------------
>
> Key: NIFI-4269
> URL: https://issues.apache.org/jira/browse/NIFI-4269
> Project: Apache NiFi
> Issue Type: Improvement
> Reporter: Mike Thomsen
>
> GetMongo currently only supports "extended JSON." That results in ugly JSON
> like this:
> {
> "timestamp": {
> "$date": LONG_TIMESTAMP
> }
> }
> instead of something cleaner like this:
> {
> "timestamp": "2017-08-07T00:00:00Z"
> }
> GetMongo should be refactored to support both modes of JSON serialization.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)