Play2�ɂ�����JSON�����CoffeeScript�̎g�����FScala�{Play 2.0��Web�A�v���J������i9�j�i1/3 �y�[�W�j

2.0����Scala�ɑΉ�����Web�A�v���J���̐l�C�y�ʃt���[�����[�N�uPlay�v�ɂ‚��ĉ�����AWeb�A�v���̍������Љ�����A�ځB����́AJSON���������߂̃p�b�P�[�W��JSON��Scala�̑��ݕϊ��̕��@�AJsPath�̎g�����ACoffeeScript�̎g�����Ȃǂ�������܂��B

» 2013�N09��25�� 18��00�� ���J
[�����C���C�N���X���\�b�h]

�@�O��̋L���uPlay�̃O���[�o���Ȑݒ聕spec2��BDD�ȃe�X�g�v�ł́APlay framework 2.x�i�ȉ��APlay2�j�ł̃e�X�g��@���Љ�܂����B

�@�����܂ł̘A���ŁAScala�Ŏg�����Ƃ𒆐S�ɁAPlay2�̊T�v����R���\�[���̎g�p���@�A�R���g���[����r���[�ADB�A�N�Z�X���@��e�X�g��@�ȂǁAPlay2�ɂ������{�I�ȋ@�\�ɂ‚��Đ������Ă��܂����B������Play2�̋@�\�́A�܂��܂�����܂��B����́A����������Play2�̂��낢��ȋ@�\���Љ�܂��B

JSON���������߂̃��C�u�����uplay.api.libs.json�v�p�b�P�[�W

�@�ŋ߂�HTML�̃t�H�[�����g���ĉ�ʑJ�ڂ�f�[�^�̑���M��������AAjax�Ńf�[�^�̑���M���s���A�ŏ��Ƀ��[�h���ꂽ�y�[�W�̓��e��ύX���Ă������Ƃ̕���������������܂���B

�@���̂悤�ȃA�v���́u�P��y�[�W�A�v���P�[�V�����isingle page application�j�v�Ƃ��Ă΂�A�T�[�o����REST�ŃA�N�Z�X�”\�ȏ�Ԃŗp�ӂ��A�N���C�A���g��Ajax���g�p���ăT�[�o�ƒʐM���܂��B

�@���̏ꍇ�A����M�t�H�[�}�b�g��JSON���g�p���邱�Ƃ������̂ł͂Ȃ��ł��傤���BPlay2�ł́A�uplay.api.libs.json�v�p�b�P�[�W��JSON���������߂̃��C�u�������p�ӂ���Ă��܂��B��������́AScala�{Play2��JSON���������@���Љ�Ă����܂��B

JSON�Ń��X�|���X��Ԃ��Ă݂�

�@JSON�`���Ń��X�|���X��Ԃ��Ă݂܂��傤�B���܂܂ł̘A���ł��g�p���Ă����ugyro�v�v���W�F�N�g�ŁA�uapp/controllers�v�ɁuJsonController.scala�v��lj����܂��B

package controllers
import play.api._
import play.api.mvc._
import play.api.libs.json.Json
object JsonController extends Controller {
  def simpleJson = Action {
    val result = Map("status" -> "success")
    val json = Json.toJson(result)
    Ok(json)
  }
}

�@�V���v����JSON��Ԃ��̂ł���΁A��L�̂悤�ȊȒP�ȕ��@�Ŏ����ł��܂��BMap�I�u�W�F�N�g��Json.toJson�֓n���AJsValues�I�u�W�F�N�g��Ԃ��Ă��܂��B

��JsValues��Ԃ��ꍇ�AContent-Type�w�b�_�ɂ͓K�؂Ȓl�iapplication/json�j���ݒ肳��܂�

�@����routes�t�@�C���ɁA��L�R���g���[���̃��[�g����lj����܂��B

GET     /simpleJson       controllers.JsonController.simpleJson()

�@Play�R���\�[�����N�����ē�����m�F���Ă݂܂��傤�Brun�R�}���h�ŃA�v�����N�����A�uhttp://localhost:9000/simpleJson�v�ɃA�N�Z�X���Ă݂Ă��������B��ʂɎ��̂悤�Ȍ��ʂ�JSON�`���ŕԂ��Ă��܂��B

{"status":"success"}

�@��̗�ł́A�R���g���[����Scala��Map�I�u�W�F�N�g���V���A���C�Y����JSON�`���ɂ��Ă��܂��B���̕��@�ȊO�ɂ��A���̂悤��JSON�`���̕�����Ƃ��ĕԂ��Ă���肠��܂���B

val jsonStr = """{ "status": "success" }"""
Ok(jsonStr).withHeaders(CONTENT_TYPE -> "application/json")

Scala����JSON�p�̃f�[�^�^���g�p����

�@Json�I�u�W�F�N�g��toJson�֐����g�p����΁AScala����JSON�փf�[�^��ϊ��ł��܂��BJSON�̎d�l�ł́A������␔�l�Abool�l�Anull�A����JSON�I�u�W�F�N�g�A�z����g�p�”\�ł����Aplay.api.libs.json�p�b�P�[�W�ɂ́A����JSON�\���ɑΉ������f�[�^�^�����ꂼ��܂܂�Ă��܂��B

�@�����I�u�W�F�N�g�́A���ׂāuJsValue�v�Ƃ����N���X���p������case�N���X�ɂȂ��Ă���A�C���X�^���X�����邱�ƂŁA�C�ӂ�JSON�f�[�^���\�z�ł��܂��B

�@�ł͊eJSON�I�u�W�F�N�g�ɂ‚��ĊȒP�ɉ�����Ă����܂��傤�B�Ȃ��A��ɂ���T���v���R�[�h�́APlay�R���\�[�����console�R�}���h�����s���Ċm�F���Ă��܂��B

������FJsString

�@�W���I�ȕ�����ł��BJSON�I�u�W�F�N�g���̕������\�����߂Ɏg�p���܂��B

scala> import play.api.libs.json.JsString
scala> val jStr = JsString("taro")

���l�FJsNumber

�@JSON�I�u�W�F�N�g���ɂ����鐔�l��\���܂��B������BigDecimal�^���󂯎��̂ŁA�����⏭����n�����Ƃ��ł��܂��B

scala> import play.api.libs.json.JsNumber
scala> val jNum = JsNumber(10.5)

�^�U�l�FJsBoolean

�@true/false�̒l�����^�U�l��\���܂��B

scala> import play.api.libs.json.JsBoolean
scala> val jBool = JsBoolean(true)

null�FJsNull

�@JSON�I�u�W�F�N�g���ɂ�����null��\�����܂��B

scala> import play.api.libs.json.JsNull
scala> val nullObj = JsNull

JSON�I�u�W�F�N�g�FJsObject

�@JSON�I�u�W�F�N�g��\���A�L�[�E�o�����[�̃Z�b�g�ł��B�����Ƃ��āuSeq[String,JsValue]�v���󂯎��܂��B�Ⴆ�΁A�u{ "name" : "taro", "age" : 30, "enable" : true }�v�ƕ\�����JSON�́AJsObject�Ŏ��̂悤�ɕ\������܂��B

scala> import play.api.libs.json.JsObject
scala> val jsObj = JsObject(
        "name" -> JsString("taro") :: 
        "age" -> JsNumber(30) ::
        "enable" -> JsBoolean(true) :: Nil)

JSON�I�u�W�F�N�g�̔z��FJsArray

�@JSON�I�u�W�F�N�g�ɂ�����z���\���܂��BJsArray��Seq[JsValue]���󂯎��܂��i�z��̗v�f�͓����^�ł���K�v�͂Ȃ��ł��j�B�Ⴆ�΁AJSON���Łu["taro", 100, true]�v�ƕ\�����z��́A���L�̂悤�ɍ쐬�ł��܂��B

scala> import play.api.libs.json.JsArray
scala> val jsArray = JsArray(
        JsString("taro")::
        JsNumber(100) ::
        JsBoolean(true):: Nil)
�@�@�@�@�@�@ 1|2|3 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

'; this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B