• play framework 中耍 JSON 基礎


    首先要知道有JsValue

    JsNumber, JsString, JsObject, JsArray.. 都是 JsValue的小孩(專業一點說extends from JsValue trait)

    Json是工具類(object喔) Josn.obj, Json.arr, Json.toJson

    JsPath 按字面上來說就是Json的路徑相關的, 主要描述 key 而不是 value 就是橘色些字

    {
      "name" : "Watership Down",
      "location" : {
        "lat" : 51.235685,
        "long" : -1.309197
      }
    }

    JsObject 相當於一個完整的tuple, Object的意思是有lat和long這兩的屬性的對象

      "location" : {
        "lat" : 51.235685,
        "long" : -1.309197
           }

    JsNumber 就可以理解成 "long" : -1.309197, 我想其他的JsString, JsArray..大家也就懂了

    耍些工具, 耍之前不要忘了 import play.api.libs.json._

    val jsonString: JsString = Json.toJson("I can be JsString")

    val jsonNumber: JsNumber = Json.toJson(100)

    val jsonArrayOfInts = Json.toJson(List(1,2,3))

    val jsonEmployee = Json.toJson(new Employee("henry")) //別想了, 哪有這麼好

    Json.toJson[T](T)(implicit writes: Writes[T]) 用的這麼爽是因為有隱式參數,幫你轉換

    來些code

    case class Employee(name: String)

    implicit val employeeWrites = new Writes[Employee] {

      def writes(employee: Employee) = Json.obj(

        "name" -> employee.name

        )

    }

    val jsonEmployee = Json.toJson(new Employee("henry")) //可以轉換了, 隱式會自動把employeeWrites 當成writes參數

  • 相关阅读:
    bzoj 1031: [JSOI2007]字符加密Cipher
    python re模块实现计算器
    python sys模块和序列化模块
    python time时间模块
    python 发红包的小程序
    python ranndom模块及生成验证码
    python os模块练习题
    python os模块常用命令
    快速排序,归并排序
    选择排序和插入排序
  • 原文地址:https://www.cnblogs.com/jHenry/p/3723587.html
Copyright © 2020-2023  润新知