首页 > 解决方案 > 如何在 scala 中使用 json?

问题描述

我使用 IntelliJ 而不是 sbt。我有一个需要创建帖子的任务。我需要输入以下信息:

{
"packages": [
    {
        "uid": "...",
        "x": 21.27,
        "y": 23.36
    },
    {
        "uid": "...",
        "x": -16.01,
        "y": -12.82
    },
    {
        "uid": "...",
        "x": 19.38,
        "y": 1.77
    }
],
"mailmen": [
    {
        "uid": "...",
        "x": 14.68,
        "y": 9.69
    },
    {
        "uid": "...",
        "x": 0.08,
        "y": -3.34
    }
]

}

我已经完成了程序并且我有课程:

    class livreur(var uid:String,var xMaison:Double,var yMaison:Double,var x:Double,var y:Double,var distance:Double=0.0){
      def afficherL : Unit ={
      println("Uid "+uid)
      println("Distance: "+distance)
    }
  }
class packages(var uid:String,var x:Double,var y:Double,var uidLivre:String=""){
    def afficherP : Unit ={
      println("Uid "+uid)
    }
  }

我用来创建对象的函数:

    def saisirLivreur():livreur={
      val uidLiv=readLine("Uid: ").toString
      val xMaison=readLine("X: ").toDouble
      val yMaison=readLine("Y: ").toDouble
      return new livreur(uidLiv,xMaison,yMaison,xMaison,yMaison)
    }

    def saisirPackage():packages={
      val uidPack=readLine("Uid: ").toString
      val xPack=readLine("X: ").toDouble
      val yPack=readLine("Y: ").toDouble
      return new packages(uidPack,xPack,yPack)
    }

**我的问题是:如果我有 2 个 ArraysBuffers,第一个是所有快递员(livrMaison),第二个是所有交付的包裹(包Livré)。:

[
{
    "uid": "uid-du-livreur",
    "tour": [  //liste des colis à distribuer, dans l'ordre
        "uid-du-premier-colis-de-la-tournee-de-ce-livreur"
    ],
    "length": 28.670242284303 //longueur totale du parcours
},
{
    "uid": "uid-du-livreur",
    "tour": [ //liste des colis à distribuer, dans l'ordre
        "uid-du-premier-colis-de-la-tournee-de-ce-livreur",
        "uid-du-second-colis-de-la-tournee-de-ce-livreur"
    ],
    "length": 106.54693343859 //longueur totale du parcours
}

] ** 请帮我。谢谢,-N

标签: jsonscala

解决方案


  • scala中的类应该是大写Livreur而不是livreur
  • 要解析和生成 json,请使用现有库之一。我建议upicklehttp://www.lihaoyi.com/upickle/)(添加ibraryDependencies += "com.lihaoyi" %% "upickle" % "0.9.5"build.sbt

推荐阅读