如何解决如何使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 举报,一经查实,本站将立刻删除。