FasterXML / FasterXML/jackson-dataformats-text
Jackson 3 parses YAML ~ as StringNode instead of NullNode
- Langage dominant
- Java
- Étoiles
- 455
- Forks
- 164
- Merge moyen
- 6 j 10 h
- PR mergées (30 j)
- 2
Description
In Jackson 2, the special character ~ was parsed as a NullNode, while in Jackson 3 I get a StringNode with value ~. It seems that the default behavior has changed.
I tried several YAML mapper configurations, but I couldn’t find any setting that reproduces the Jackson 2 behavior.
The issue can be reproduced with the following test:
```
@Test
void tilde() throws JsonProcessingException {
String rawDescriptor = """
specVersion: v1
kind: com.example.kind
name: "mnp_up"
state: ~
description: "a description"
""";
tools.jackson.dataformat.yaml.YAMLMapper myYamlMapper = new YAMLMapper();
JsonNode node1 = myYamlMapper.readValue(rawDescriptor, tools.jackson.databind.JsonNode.class);
com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper(new YAMLFactory());
com.fasterxml.jackson.databind.JsonNode node2 = objectMapper.readValue(rawDescriptor, com.fasterxml.jackson.databind.JsonNode.class);
System.out.println("node1 state: " + node1.get("state").getNodeType() + "\nnode2 state: " + node2.get("state").getNodeType());
}
```
OUTPUT:
node1 state: STRING
node2 state: NULL
I couldn’t find anything about this in the migration documentation.
Since my application logic depends on parsing files that may contain this special character, I need to stay compatible with the behavior implemented in Jackson 2.
How can I configure the Jackson 3 mapper to get the same result as in Jackson 2?
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Évaluation
Cette issue n'a pas encore été évaluée.