如何使SnakeYAML序列化没有显式注释的对象?

问题描述

我为SnakeYAML制作了to_yaml函数,但它不打印YAML,而是打印!!Portfolio {}代码

fun to_yaml(v: Any): String {
  val yaml = Yaml()
  val writer = StringWriter()
  yaml.dump(v,writer)
  return writer.toString()
}

如何更新它,以便将任何对象打印为键/值集合,例如JS对象的JSON?

不需要专门为该课程添加注释吗?另外,理想情况下,避免打印类名,而仅打印对象的内容,就像JSON在JavaScript中的工作方式一样。

示例

import org.yaml.snakeyaml.Yaml
import java.io.StringWriter


fun to_yaml(v: Any): String {
  val yaml = Yaml()
  val writer = StringWriter()
  yaml.dump(v,writer)
  return writer.toString()
}


fun main() {

  val portfolio = Portfolio(
    "id1",listof(
      PortfolioPosition(
        1,1.0,PortfolioStockContract(
          "MSFT"
        )
      )
    )
  )
  println(to_yaml(portfolio))
}
    
class Portfolio(
  val account_id: String,val positions:  List<PortfolioPosition>
)

class PortfolioPosition (
  val position:     Int,val average_cost: Double,val contract:     PortfolioContract
)

interface PortfolioContract

enum class ContractType { stock,option }

class PortfolioStockContract (
  val symbol:   String
) : PortfolioContract {
  val type = ContractType.stock
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)