将json_encode()用于php文件中值的json表示
我需要帮助来正确使用json_encode()返回php服务器脚本中值的json表示形式。据我所知,这并不是像我在提问之前研究的所有其他问题中所解释的那样,通过echo、print或loop来完成的 如何从data.json文件中获取一个“值”将json_encode()用于php文件中值的json表示,php,json,fine-uploader,Php,Json,Fine Uploader,我需要帮助来正确使用json_encode()返回php服务器脚本中值的json表示形式。据我所知,这并不是像我在提问之前研究的所有其他问题中所解释的那样,通过echo、print或loop来完成的 如何从data.json文件中获取一个“值” { "clientPrivateKey": { "Name":"AWS_CLIENT_SECRET_KEY", "Value":"someexammplestring" }, "serverPu
{
"clientPrivateKey": {
"Name":"AWS_CLIENT_SECRET_KEY",
"Value":"someexammplestring"
},
"serverPublicKey": {
"Name":"AWS_SERVER_PUBLIC_KEY",
"Value":"someexammplestring"
},
"serverPrivateKey": {
"Name":"AWS_SERVER_PRIVATE_KEY",
"Value":"someexammplestring"
},
"expectedBucketName": {
"Name":"S3_BUCKET_NAME",
"Value":"someexammplestring"
}
}
在我的PHP服务器脚本中输入相应的PHP变量
$clientPrivateKey =
$serverPublicKey =
$serverPrivateKey =
$expectedBucketName =
我这里只需要“Value”字符串。该值应该在计算签名的php服务器脚本中给出有效的JSON响应,否则它将{“invalid”:true}。谢谢你的帮助 要从JSON文件获取数据,可以使用
JSON\u decode()
,而不是JSON\u encode()
。然后使用普通PHP对象语法访问它的各个部分
$json = file_get_contents("data.json");
$data = json_decode($json);
$clientPrivateKey = $data->clientPrivateKey->Value;
$serverPublicKey = $data->serverPublicKey->Value;
$serverPrivateKey = $data->serverPrivateKey->Value;
$expectedBucketName = $data->expectedBucketName->Value;
1。您需要解码JSON以使其可用:
$json = json_decode($jsonString, true);
请注意,第二个参数设置为“true”,这意味着我们需要关联数组而不是对象
2.您现在可以将JSON用作常规关联数组:
$clientPrivateKey = $json['clientPrivateKey']['Value'];
您可以按照前面的示例访问所需的其他两个值。
如果您想知道偏移量是否有效,可以对其使用isset()函数。您需要像这样使用
json\u decode()
:
$json = json_decode({
"clientPrivateKey": {
"Name":"AWS_CLIENT_SECRET_KEY",
"Value":"someexammplestring"
},
"serverPublicKey": {
"Name":"AWS_SERVER_PUBLIC_KEY",
"Value":"someexammplestring"
},
"serverPrivateKey": {
"Name":"AWS_SERVER_PRIVATE_KEY",
"Value":"someexammplestring"
},
"expectedBucketName": {
"Name":"S3_BUCKET_NAME",
"Value":"someexammplestring"
}
},true);
$clientPrivateKey = $json['clientPrivateKey']['Value'];
$serverPublicKey = $json['serverPublicKey']['Value'];
$serverPrivateKey = $json['serverPrivateKey']['Value'];
$expectedBucketName = $json['expectedBucketName']['Value'];
好了:
<?php
$json = json_decode(file_get_contents('data.json'));
$clientPrivateKey = $json->clientPrivateKey->Value;
// ...
您可以使用此一行代码自动从数组中提取变量:
extract(array_combine(array_keys($array=json_decode($json,true)),array_column($array,"Value")));
// $clientPrivateKey,$serverPublicKey,$serverPrivateKey,$expectedBucketName are now set
示例:看起来您的思路是正确的-但不是对data.json
文件的内容使用json\u encode
,我认为您应该改为使用json\u decode
函数,该函数允许您直接以数组或对象的形式访问json的内容。除非您非常确定数据源,否则提取是危险的,因为它可以删除任意变量。