¿Как можно сгенерировать ответ json без sql-запроса?

#php

#php

Вопрос:

Я хочу сгенерировать json такого типа:

 {
    "message": [
        [
            "message":"ok"
        ]
    ]
}   
  

но я пытаюсь сделать это без sql-запроса, только используя php, который может сделать это только таким образом :

 {
    "message": [
        [
            "ok"
        ]
    ]
}
  

Мой код следующий…

 $respuesta["message"] = array();
if (mail($to,  utf8_decode($subject), utf8_decode($message), $header)) {
    $tmp = array();
    $tmp=["ok"];
    array_push($respuesta["message"], $tmp);
    echo json_encode($respuesta);
} else {
    $tmp = array();
    $tmp=["no"];
    array_push($respuesta["message"], $tmp);
    echo json_encode($respuesta);
}
  

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

1.Изучайте PHP. Синтаксис ассоциативного массива ['key' => 'value'] , например array_push($respuesta["message"], ['message' => $tmp]);

2. Ваш JSON [ "message":"ok" ] недействителен. Должны быть фигурные скобки {}

Ответ №1:

Ваш код, генерирующий ассоциативный PHP-массив (переведенный в объекты в JSON), может быть написан вкратце с использованием тернарного оператора CONDITION ? ON_TRUE : ON_FALSE

 $respuesta["message"] = [];
array_push($respuesta["message"], ['message' => mail($to, utf8_decode($subject), utf8_decode($message), $header) ? 'ok':'no']);
echo json_encode($respuesta);
  

Ответ №2:

Здравствуйте, вы можете попробовать stdClass

 $r = new stdClass();
$r->message = array();

$ms = new stdClass();
$ms->message="ok";
array_push($r->message,$ms);
 echo json_encode($r);