簡體   English   中英

使用json_encode()在php文件中表示值的JSON

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM