protected Row convert(
            RowFormatInfo rowFormatInfo,
            String path,
            JsonNode node) throws IOException {
        checkState(node.isObject(),
                String.format("The json node is not object, actual type is [%s] (path=[%s], text=[%s]).",
                        node.getNodeType(), path, node));

        String[] fieldNames = rowFormatInfo.getFieldNames();
        FormatInfo[] fieldFormatInfos = rowFormatInfo.getFieldFormatInfos();

        final int arity = fieldNames.length;
        Row row = new Row(arity);
        for (int i = 0; i < arity; i++) {
            String fieldName = fieldNames[i];
            String childPath = path + "." + fieldName;
            JsonNode childNode = node.get(fieldName);

            if (childNode == null) {
                row.setField(i, null);
            } else {
                row.setField(i, convert(fieldFormatInfos[i], childPath, childNode));
            }
        }

        return row;
    }
Object mapper for parsing the JSON.
inlong-sort/sort-formats/format-rowdata/format-rowdata-json/src/main/java/org/apache/inlong/sort/formats/json/JsonRowDeserializationSchema.java