FasterXML / FasterXML/jackson-dataformats-text
Jackson 3 parses YAML ~ as StringNode instead of NullNode
- Lingua principale
- Java
- Stelle
- 455
- Fork
- 164
- Merge medio
- 6g 10h
- PR unite (30g)
- 2
Descrizione
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?
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.