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

问题描述 投票:1回答:5

我需要帮助才能正常使用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响应运算签名,否则它将{“无效”:真}。 thanx您的帮助!

php json fine-uploader
5个回答
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;

1
投票

1.您需要解码的JSON,使其可用:

$json = json_decode($jsonString, 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;
// ...

0
投票

您可以使用此一个衬垫的代码自动提取从一个数组变量:

 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

© www.soinside.com 2019 - 2024. All rights reserved.