2017-07-01 37 views
1

我需要幫助才能正確使用json_encode()來返回我的php服務器腳本中值的JSON表示形式。據我所知,這不是用echo,print或loop來完成的,正如我之前研究過的所有其他問題所解釋的那樣。使用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 = 

這裏我只需要「Value」字符串。該值應該在PHP服務器腳本內部計算簽名時給出有效的JSON響應,否則將會{「invalid」:true}。感謝您的幫助!

+0

好像你是在正確的軌道上 - 但不是對'data.json'文件的內容使用'json_encode',我想你應該使用http://php.net/manual/en/ function.json-decode.php'json_decode'函數可以讓你直接以數組或對象的形式訪問json的內容。 – kjones

回答

2

要從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; 
+0

TY Barmar,這樣做的訣竅:) – Andi

1

您需要解碼的JSON,使其可用:

$json = json_decode($yourJSONstring, true); 

注意設置爲「真」的第二個參數,這意味着我們需要一個關聯數組。

2.您現在可以使用JSON作爲一個經常性關聯數組:

$clientPrivateKey = $json['clientPrivateKey']['Value']; 

,您可以訪問其他兩個值要通過以下前面的例子。 如果你想知道偏移量是否有效,你可以使用isset()函數。

0

您需要使用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']; 
0

你去那裏:

<?php 
$json = json_decode(file_get_contents('data.json')); 
$clientPrivateKey = $json->clientPrivateKey->Value; 
// ... 
相關問題