在JSON数组中分配PHP值


Assign PHP values inside JSON Array

我正在开发这个DUDAMOBILE API。PHP网站中的自定义集成。首先它从客户那里获取URL。

$url = $_POST["url"]

我想在下面的代码中分配这个url

$data = '
        {   
        "site_data":
            {               
                "original_site_url":"http://www.test.com/"
            }
        }
    ';

但不确定如何将其分配给上述代码。我试过了。但不起作用

$data = '
        {   
        "site_data":
            {               
                "original_site_url":'.$url.'
            }
        }
    ';

我收到这个错误Failed to parse JSON: Unexpected character ('h' (code 104))

这是因为url中有斜杠。与其手动格式化json,不如使用json_encode

$data = ['site_data' => ['original_site_url' => $url]];
$json = json_encode($data); // json_encode($data, JSON_PRETTY_PRINT) to keep formatting.

您也需要在值周围加引号,否则它不是有效的JSON字符串:

$data = '
        {   
        "site_data":
            {               
                "original_site_url":"'.$url.'"
            }
        }
    ';

该错误是因为解析器需要一个双引号,并找到url开头的"h"(http….)。