使用 json_encode() 作为 JSON 表示 php 文件中的值
Use json_encode() for JSON representation of a value in php file
我需要帮助才能正确使用 json_encode() 到 return 我的 php 服务器脚本中的 JSON 值表示。据我所知,这不是通过 echo、print 或 loop 完成的,正如我在询问之前研究的所有其他问题中所解释的那样。
如何从我的 data.json 文件中获取 "Value"
{
"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_decode()
,而不是 json_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_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
示例:http://sandbox.onlinephpfunctions.com/code/8f1de6493c35cadd0976532b36a23c2fb09bc7b2
我需要帮助才能正确使用 json_encode() 到 return 我的 php 服务器脚本中的 JSON 值表示。据我所知,这不是通过 echo、print 或 loop 完成的,正如我在询问之前研究的所有其他问题中所解释的那样。
如何从我的 data.json 文件中获取 "Value"
{
"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_decode()
,而不是 json_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_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
示例:http://sandbox.onlinephpfunctions.com/code/8f1de6493c35cadd0976532b36a23c2fb09bc7b2