Input 从kotlin中的文件读取映射的arraylist

Input 从kotlin中的文件读取映射的arraylist,input,kotlin,Input,Kotlin,我已从控制台将以下数据保存在文件中: Username : ali Age : 56 Email : abc@gmail.com Password :123456 Skills :Skills : [{android=2, java=3}, {android=2, java=3}] 最后一个字段是地图的数组列表 var skills = arrayListOf<Map<String, Int>>() var skill = mutableMapOf<Strin

我已从控制台将以下数据保存在文件中:

Username : ali 
Age : 56 
Email : abc@gmail.com
Password :123456
Skills :Skills : [{android=2, java=3}, {android=2, java=3}]
最后一个字段是地图的数组列表

var skills = arrayListOf<Map<String, Int>>()
var skill = mutableMapOf<String,Int>()
var skillType: String

print("Skills with experience : ")
   skillType = readLine()!!
   print("Experience : ")
   skill[skillType] = readLine()!!.toInt()

   skills.add(skill)
var skills=arrayListOf()
var skill=mutableMapOf()
var skillType:String
打印(“有经验的技能:”)
skillType=readLine()!!
打印(“经验:”)
skill[skillType]=readLine()!!。托因()
技能。添加(技能)

现在我想把这个技能字段作为地图的同一个数组列表来阅读,以检查是否存在某些特定的技能。如何实现这一点?

将kotlin序列化为json的选项正在使用

  • Jackson(它有一个kotlin模块)

  • (我个人的建议)JetBrain自己的kotlinx序列化,但它需要gradle设置 gradle插件会为您生成序列化程序,因此它能够实现无反射,并且还支持kotlin native

  • 还有一些用于json序列化的kotlin实现(例如:klaxon)

  • 在java中甚至更多(例如:gson)
希望这能给你一个开始和比较你的选择的地方

对于kotlinx序列化,使用相同的代码

@Serializable
data class Skill(val skillType: SkillType)

enum class SkillType { A, B, C }

val json = JSON(indented = true)

println(json.stringify(Skill::class.serializer().list, listOf(Skill(SKillType.A))))

println(json.stringify(Skill(SkillType.B)))

val skill: Skill = json.parse("{\"skillType\": \"C\"}")
还有一些注释,它允许json“unquoted”,因此在可能的情况下删除引号,使其更具可读性
而人类消耗品

toString()并不意味着提供一个明确的、可解析的对象表示。不要用它在文件中存储数据。选择一种可解析的格式,比如JSON或XML。我正在学习,在控制台上工作是什么?我不是建议你创建一个webapp或GUI或其他任何东西。我建议您为存储在文件中的数据选择一种可解析的格式,如果您希望能够解析该数据。事实上,你“在控制台上工作”并不妨碍你这么做。好的。你能给我任何关于这个的链接吗?谷歌的“如何在Java中解析JSON”。