[英]Use json_encode() for JSON representation of a value in php file
我需要幫助才能正確使用json_encode()在我的php服務器腳本中返回值的JSON表示。 據我所知,這不是用回聲,印刷或循環完成的,正如我在詢問之前所研究的所有其他問題中所解釋的那樣。
如何從我的data.json文件中獲取一個“值”
{
"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 =
我這里只需要“值”字符串。 該值應該在php服務器腳本計算簽名內給出有效的JSON響應,否則它將{“invalid”:true}。 Thanx為您提供幫助!
要從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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.