Quantcast
Channel: Symfony Blog
Viewing all articles
Browse latest Browse all 3056

New in Symfony 4.3: JSON validation

$
0
0
Imad Zairig

Contributed by
Imad Zairig
in #28477.

JSON is arguably the most used format in applications developed with Symfony. You probably make requests to JSON APIs and send/receive JSON payloads in your projects. That's why Symfony provides a JsonResponse class, a way to buildJSON authentication, full JSON support in the Serializer component, ajson() helper for controllers, etc.

In Symfony 4.3 we improved the Validator component to add a new Json constraint, which can be applied to properties and getters, and ensures that the given contents are valid JSON contents:

  • Annotations
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    // src/Entity/Book.phpnamespaceApp\Entity;useSymfony\Component\Validator\ConstraintsasAssert;classBook{/**     * @Assert\Json(message = "This is not valid JSON")     */protected$chapters;}
  • YAML
    1
    2
    3
    4
    5
    6
    # config/validator/validation.yamlApp\Entity\Book:properties:chapters:-Json:message:'ThisisnotvalidJSON'
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    <!-- config/validator/validation.xml --><?xml version="1.0" encoding="UTF-8" ?><constraint-mappingxmlns="http://symfony.com/schema/dic/constraint-mapping"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd"><classname="App\Entity\Book"><propertyname="chapters"><constraintname="Json"><optionname="message">This is not valid JSON</option></constraint></property></class></constraint-mapping>
  • PHP
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    // src/Entity/Book.phpnamespaceApp\Entity;useSymfony\Component\Validator\Mapping\ClassMetadata;useSymfony\Component\Validator\ConstraintsasAssert;classBook{protected$chapters;publicstaticfunctionloadValidatorMetadata(ClassMetadata$metadata){$metadata->addPropertyConstraint('chapters',newAssert\Json(array('message'=>'This is not valid JSON',)));}}

Be trained by Symfony experts - 2019-02-13 Clichy - 2019-02-18 Clichy - 2019-02-18 Clichy

Viewing all articles
Browse latest Browse all 3056

Trending Articles