Example usage for org.apache.commons.text StringEscapeUtils ESCAPE_JSON

List of usage examples for org.apache.commons.text StringEscapeUtils ESCAPE_JSON

Introduction

In this page you can find the example usage for org.apache.commons.text StringEscapeUtils ESCAPE_JSON.

Prototype

CharSequenceTranslator ESCAPE_JSON

To view the source code for org.apache.commons.text StringEscapeUtils ESCAPE_JSON.

Click Source Link

Document

Translator object for escaping Json.

Usage

From source file:org.apache.nifi.processors.standard.FlattenJson.java

@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
    FlowFile flowFile = session.get();//from   w  w  w. j  ava2  s .  c  o  m
    if (flowFile == null) {
        return;
    }

    final String mode = context.getProperty(FLATTEN_MODE).getValue();
    final FlattenMode flattenMode = getFlattenMode(mode);

    String separator = context.getProperty(SEPARATOR).evaluateAttributeExpressions(flowFile).getValue();

    try {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        session.exportTo(flowFile, bos);
        bos.close();

        String raw = new String(bos.toByteArray());
        final String flattened = new JsonFlattener(raw).withFlattenMode(flattenMode)
                .withSeparator(separator.charAt(0)).withStringEscapePolicy(() -> StringEscapeUtils.ESCAPE_JSON)
                .flatten();

        flowFile = session.write(flowFile, os -> os.write(flattened.getBytes()));

        session.transfer(flowFile, REL_SUCCESS);
    } catch (Exception ex) {
        session.transfer(flowFile, REL_FAILURE);
    }
}