Javascript 使用PHP从MySQL获取JSON作为字符串,我们可以在字段中获取JSON作为数据吗

Javascript 使用PHP从MySQL获取JSON作为字符串,我们可以在字段中获取JSON作为数据吗,javascript,php,Javascript,Php,我正在使用核心PHP开发一个API。当我返回数据时,所有字段数据都以字符串形式返回,但在某些字段中,我有JSON类型的数据,也以字符串形式返回 例如: end_city: "mysore", facilities: "{"Breakfast":false,"PickDrop":true,"Hotel":false,"Guide":true}" 这里,field facilities使用JSON,但是在响应中将其作为字符串获取,希望仅将其作为JSON而不是字符串获取 <?php heade

我正在使用核心PHP开发一个API。当我返回数据时,所有字段数据都以字符串形式返回,但在某些字段中,我有JSON类型的数据,也以字符串形式返回

例如:

end_city: "mysore",
facilities: "{"Breakfast":false,"PickDrop":true,"Hotel":false,"Guide":true}"
这里,field facilities使用JSON,但是在响应中将其作为字符串获取,希望仅将其作为JSON而不是字符串获取

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, DELETE, PUT');
header('Access-Control-Allow-Headers: token, Content-Type');

// get database connection
require_once '../config/database.php';

// instantiate tours object
include_once '../objects/tours.php';

$db = new Database();
$tours = new Tours($db);

$tour = $tours->getTour($_REQUEST["t"]);
$num = $tour->num_rows;

if ($num > 0) {
    while ($row = $tour->fetch_assoc()) {
        echo json_encode($row);
    }
    // set response code - 200 OK
    http_response_code(200);
} else {
    // set response code - 404 Not found
    http_response_code(404);
    // tell the user no products found
    echo json_encode(
        array("message" => "No tour found.")
    );
}

使用json\u decode将字符串转换为json

  • 在发送内容之前,设置状态代码并发送标题
  • 不要在循环中回显多个json值,这将不是有效的json响应。将所有结果收集到一个列表中,对其进行json_编码,然后发送该列表
  • 将内容类型设置为
    application/json
  • 更改:

    
    如果($num>0){
    而($row=$tour->fetch_assoc()){
    echo json_编码($row);
    }
    //设置响应代码-200正常
    http_响应_码(200);
    
    进入

    header('content-type:application/json');
    如果($num>0){
    http_响应_码(200);
    $results=[]
    而($row=$tour->fetch_assoc()){
    $results[]=$row;
    }
    echo json_编码($results);
    
    以上问题已经解决,问题是我的数据没有正确保存在数据库中,这就是为什么JSON.parse不能正常工作,但现在问题已经用JSON解决了。不是以字符串格式解析数据,而是在mysql查询中,我将数据作为字符串。我已经尝试了JSON_解码,但由于数据的格式正确,所以获取空值是什么类型的表中的列json存储在哪里?我将数据存储在mysql中,并使用数据类型text如果您保存在文本类型中,那么您将返回字符串您可以建议我mysql中json的有效数据类型吗?我认为
    http\u response\u code()
    假设在任何
    echo()
    No之前不会产生任何问题