Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSON:如何在PHP中检查模式_Php_Json - Fatal编程技术网

JSON:如何在PHP中检查模式

JSON:如何在PHP中检查模式,php,json,Php,Json,我是个新手。我试图对PHP中的REST应用程序有一些经验。因此,我接收(发布)一个JSON主体并将值存储在数据库中。我只想检查我得到的JSON主体是否正确,是否与我设置的特定模式匹配。我需要这样的东西(例如): 我的模式: {"id":"int", "name":"string", "value":"double" } 我只想检查我的JSON正文是否包含相同的字段和类型。提前谢谢 更新 谢谢大家的回答。我想听听克里希普洛尔斯基的回答。这正是我需要的。所以我使用的是Ubuntu12.04LTS和

我是个新手。我试图对PHP中的REST应用程序有一些经验。因此,我接收(发布)一个JSON主体并将值存储在数据库中。我只想检查我得到的JSON主体是否正确,是否与我设置的特定模式匹配。我需要这样的东西(例如):

我的模式:

{"id":"int",
"name":"string",
"value":"double"
}
我只想检查我的JSON正文是否包含相同的字段和类型。提前谢谢

更新

谢谢大家的回答。我想听听克里希普洛尔斯基的回答。这正是我需要的。所以我使用的是Ubuntu12.04LTS和NGINX服务器。我只通过Composer安装了HttpFoundation和验证程序组件。现在在我的“www”文件夹中,我有一个名为“vendor”的文件夹,Symfony的组件就在那里(我不知道这个文件夹是否必须在那里)。为了进行检查,我制作了一个取自web上一些示例的脚本,但我遇到了一个“500内部服务器错误”。脚本如下所示:

<?php
require 'vendor/autoload.php';
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Constraints\Lenght;

class user{
public function utente(){
$validator = Validation::createValidator();
$violations = $validator->validateValue('Bernhard', new Lenght(array('min'=>10)));
echo $violations;
}
}
$a = new user;
$a->utente();
?>

有什么建议吗?谢谢

你想要支票价值

您可以使用
json\u decode()
函数对json字符串进行解码

例如:

$json = {"id":"int",
"name":"string",
"value":"double"
};

$decode = json_decode($json);

if($decode->value == 'Your value') {
    //your code
} else {
    echo 'Incorerct!';
}

嘿,你可以用php解码你的json 使用json\u解码函数

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
$array1 = json_decode($json, true);// it will return an array 
有关json_解码的更多信息

并且可以将数据结构数组($array2)与此数组进行比较 通过交叉它们

$result = array_intersect($array1, $array2);
print_r($result);

您可以使用Symfony Validator组件根据您的模式验证json中的数据:

您可以使用检查它是否为有效语法

$json = '{"id":"int",
        "name":"string",
        "value":"double"
        }';


 $decoded = json_decode($json, true);

 if($decoded == null){
  //your error message

  echo "Error in JSON Format";

 }

如果字符串无效,json_decode将返回一个空值

json_decode
,并带有第二个参数
true
返回传递的json的键索引数组
$json = '{"id":"int",
        "name":"string",
        "value":"double"
        }';


 $decoded = json_decode($json, true);

 if($decoded == null){
  //your error message

  echo "Error in JSON Format";

 }