@Override
    public Map<String, ConfigChangeItem> doParse(String oldContent, String newContent, String type) {
        Map<String, Object> oldMap = Collections.emptyMap();
        Map<String, Object> newMap = Collections.emptyMap();
        try {
            Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
            if (StringUtils.isNotBlank(oldContent)) {
                oldMap = yaml.load(oldContent);
                oldMap = getFlattenedMap(oldMap);
            }
            if (StringUtils.isNotBlank(newContent)) {
                newMap = yaml.load(newContent);
                newMap = getFlattenedMap(newMap);
            }
        } catch (MarkedYAMLException e) {
            handleYamlException(e);
        }
        
        return filterChangeData(oldMap, newMap);
    }
@Test
    void testComplexYaml() throws IOException {
        /*
         * map:
         *   key1: "string"
         *   key2:
         *     - item1
         *     - item2
         *     - item3
         *   key3: 123
         */
        String s = "map:\n" + "  key1: \"string\"\n" + "  key2:\n" + "    - item1\n" + "    - item2\n" + "    - item3\n"
                + "  key3: 123    \n";
        Map<String, ConfigChangeItem> map = parser.doParse(s, s, type);
        assertEquals(0, map.size());
    }