module

Noir::JacksonNaming

Jackson property naming strategies: a class-level @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) or the Spring Boot default spring.jackson.property-naming-strategy: SNAKE_CASE renames every JSON key that has no explicit @JsonProperty.

Constants

ANNOTATION_RE = /@(?:\w+\.)*JsonNaming\s*\(\s*(?:value\s*=\s*)?([\w.]+?)\s*(?:::|\.)\s*class\b/

@JsonNaming(X.class) (Java) / @JsonNaming(X::class) (Kotlin).

KNOWN = Set {"snakecase", "uppersnakecase", "kebabcase", "lowercase", "lowerdotcase", "uppercamelcase", "lowercamelcase"}
ROOT_NAME_RE = /@(?:\w+\.)*JsonRootName\s*\(([^)]*)\)/

@JsonRootName("user"): the key a body is wrapped in when UNWRAP_ROOT_VALUE is on. Nil when absent or empty.

ROOT_VALUE_RE = /(?:\A|,)\s*(?:value\s*=\s*)?"([^"\\]*)"/

Instance methods

annotation_root_name(text : String) : String | Nil

@JsonRootName("user"), @JsonRootName(namespace = "ns", value = "user").

Source
annotation_strategy(text : String) : String | Nil
Source
strategy(raw : String) : String | Nil

Normalised strategy for a class name (SnakeCaseStrategy, PropertyNamingStrategies.KebabCaseStrategy) or property value (SNAKE_CASE, com.fasterxml...PropertyNamingStrategies$SnakeCaseStrategy), nil when it is not a known strategy.

Source
translate(name : String, strategy : String) : String
Source
unwrap_root_value?(config : Hash(String, String)) : Bool

spring.jackson.deserialization.UNWRAP_ROOT_VALUE=true, in any of Spring's relaxed spellings (unwrap-root-value).

Source