Как преобразовать json в строку в php

#php #arrays #json #post

#php #массивы #json #Публикация

Вопрос:

Я хочу преобразовать данные 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:xampphtdocswork .
И без кода fileupload это ничего не показывает.

Комментарии:

1. Похоже, ваш JSON недействителен. Попробуйте проверить это jsonlint.com сначала отладьте его, как только он станет допустимым.

2. Вместо echo $json_obj, чтобы узнать его содержимое, выполните следующие действия: echo («<pre>» ); print_r($json_obj); echo («</pre>» ); используя это, вы сможете легко увидеть, какие элементы вы пытаетесь получить. — например: $json_obj-> myfile (или это может быть $ json_obj[‘myfile’], я сейчас забыл)

3. попробуйте json_decode($json,true);

4. Я исправил свой json и теперь скажите мне php-код для получения значений.

5. Вам нужно еще раз ознакомиться с руководством по PHP о json_decode . Вам не нужно использовать сторонний инструмент для проверки правильности строки, закодированной в формате JSON, потому что, json_decode() вернет null , если она не закодирована должным образом. Второй параметр json_decode() , который вы не использовали, определит, является ли возвращаемое значение json_decode ассоциативным массивом или объектом

Ответ №1:

Если вы просто хотите получить доступ к свойству description вашего json, вы можете сделать следующее:

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

Комментарии:

1. Отображается ошибка — Обратите внимание: Попытка получить свойство не-объекта в D:xampphtdocsworkfilesharing2.php в строке 12

2. Как я уже сказал, если это ваш json, он недействителен. Вам нужно правильно отформатировать его перед использованием с PHP.

3. Я исправил свой json и теперь скажите мне php-код для получения значений.

4. Ваш json может быть лучше, но в любом случае… Я отредактировал ответ

5. Да, это я тестировал