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)
@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”。