Как я могу использовать json с scala? - PullRequest
0 голосов
/ 31 марта 2020

Я использую 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)
    }
  }

Функции, которые я использую для создания objects:

    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) и 2-й со всеми доставленными пакетами (packagesLivré). :

[
{
    "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

1 Ответ

0 голосов
/ 31 марта 2020
  • Классы в scala должны иметь верхний регистр Livreur вместо livreur
  • для анализа и создания json с использованием одной из существующих библиотек. Я предлагаю upickle (http://www.lihaoyi.com/upickle/) (добавить ibraryDependencies += "com.lihaoyi" %% "upickle" % "0.9.5" к build.sbt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...