Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么jackson.YAML将“is\u error”替换为“u error”字段?_Java_Kotlin_Jackson_Yaml - Fatal编程技术网

Java 为什么jackson.YAML将“is\u error”替换为“u error”字段?

Java 为什么jackson.YAML将“is\u error”替换为“u error”字段?,java,kotlin,jackson,yaml,Java,Kotlin,Jackson,Yaml,以下Kotlin代码打印的是\u error:false,而不是is\u error:false 如何更改它以保持原始的is\u errorname import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.SerializationFeature import com.fasterxml.jackson.dataformat.yaml.YAMLFactory import c

以下Kotlin代码打印的是
\u error:false
,而不是
is\u error:false

如何更改它以保持原始的
is\u error
name

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator

fun to_yaml(v: Any): String {
  val mapper = ObjectMapper(
  YAMLFactory()
    .enable(YAMLGenerator.Feature.MINIMIZE_QUOTES)
    .disable(YAMLGenerator.Feature.WRITE_DOC_START_MARKER)
    .disable(YAMLGenerator.Feature.SPLIT_LINES)
//      .enable(YAMLGenerator.Feature.INDENT_ARRAYS)
//      .enable(YAMLGenerator.Feature.LITERAL_BLOCK_STYLE)
  )
  mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
  return mapper.writeValueAsString(v)
}

class Result(
  val is_error: Boolean
)

fun main() {
  println(to_yaml(Result(false)))
}

该字段应命名为
error
,而不是
is\u error
。这种结果可能是因为“是”和“有”是布尔字段访问器的神奇前缀,就像“get”是普通字段的前缀一样:
data
->
getData
error
->
hasError
/
iError
,并且存在删除这些前缀的逻辑。我不知道在这种情况下如何禁用该行为。@luk2302谢谢,但我不能更改字段名,因为它是一个共享架构,用于多个具有多种语言的项目。在Java中,该字段将是
@JsonProperty(“is_error”)
,但不确定在Kotlin中如何工作。