想要实现的功能:
PHP 读取 txt 中的 json 数据传递给 JavaScript,再在 textarea 中原样显示出来
尝试的代码:
// 部分 PHP 代码
$content = file_get_contents($jsonFileName);
// 部分 JavaScript 代码
var stringWebsites = "" + <?php echo $content; ?> + "";
document.getElementById('websitesData').value = stringWebsites;
遇到的问题:
尽管上面的 JavaScript 代码中的变量 stringWebsites 的类型为 string,但是 textarea 中显示的内容却是 [object Object]。
var stringWebsites = <?php echo json_encode($content); ?>;
document.getElementById('websitesData').value = stringWebsites;
这样使用 json_encode虽然可以正常输出 json 内容,但是不是我想要的结果,因为如果 json 数据格式有误,这种方式就会无法正常输出 json 文件的内容。
更新:这样可以正常输出 json 内容,即便 json 数据格式有误,也会正常输出 json 文件的内容……,是我想当然了,没有尝试下。json_encode() 的返回值类型是 string...
PHP
你js判断一下就好了
var stringWebsites = '<?php echo $content; ?>'; if ( typeof stringWebsites === object) { stringWebsites = JSON.stringify(stringWebsites) } console.log(stringWebsites);