【问题标题】:How to convert json to string in php如何在php中将json转换为字符串
【发布时间】:2017-03-03 21:25:34
【问题描述】:

我想将 json 数据转换为 php 中的字符串。这是我的 json 数据

    {
        "": [{
            "description": "hello, this is description speaking"
        }, {
            "fieldName": "myfile",
            "originalFilename": "image.png",
            "path": "/var/folders/rq/q_m4_21j3lqf1lw48fqttx_80000gn/T/ttzVoNPfBxMMirec1tJsnrd2.png",
            "headers": "[Object]",
            "size": "82745"
        }]
    }

我想在我的 php 文件中打印“你好,这是描述”,并且我想上传我的文件。我的php代码如下,请更正。

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
 $json = file_get_contents("php://input");
    $json_obj = json_decode($json);

    echo $json_obj;

    echo $_POST['description'];

    $name = $_FILES['myfile']['name'];
$tmp_name = $_FILES['myfile']['tmp_name'];
$error = $_FILES['myfile']['error'];

if (!empty($name)) {
    $location = 'uploads/';

    if  (move_uploaded_file($tmp_name, $location.$name)){
        echo 'Uploaded';
    }

} else {
    echo 'please choose a file';
}
}  else {
    echo "error 2";
}

在此代码中,错误是未定义索引:D:\xampp\htdocs\work 中的文件。 如果没有文件上传代码,它什么也不会显示。

【问题讨论】:

  • 您的 JSON 似乎无效。尝试先验证它jsonlint.com,并在它有效后对其进行调试。
  • 代替 echo $json_obj 来学习它的内容,执行以下操作: echo ( "
    " ); print_r($json_obj);回声(“
    ”);使用它,您将能够轻松查看您想要获取的项目。 - 例如:$json_obj->myfile(或者它可能是 $json_obj['myfile'],我现在忘记了)
  • 试试json_decode($json,true);
  • 我已经更正了我的 json,现在告诉我获取值的 php 代码。
  • 您必须再次查看有关json_decode 的PHP 手册。您不必使用第三方工具来检查 JSON 编码字符串的有效性,因为如果编码不正确,json_decode() 将返回nulljson_decode()的第二个参数,你没用过,会判断json_decode的返回值是关联数组还是对象

标签: php arrays json post


【解决方案1】:

如果您只想访问 json 的 description 属性,可以执行以下操作:

$json_obj = json_decode($json, true);
$description = $json_obj[''][0]['description'];

【讨论】:

  • 显示错误 -- 注意:尝试在第 12 行获取 D:\xampp\htdocs\work\filesharing\2.php 中非对象的属性
  • 正如我所说,如果那是你的 json,它不是一个有效的。在与 PHP 一起使用之前,您需要正确格式化它。
  • 我已经更正了我的 json,现在告诉我获取值的 php 代码。
  • 你的 json 可以更好,但无论如何...我编辑了答案
  • 是的,我已经测试过了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 2019-07-22
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多