开发者社区> 问答> 正文

PHP 读取 txt 中的 json 数据传递给 JavaScript,显示问题,报错

想要实现的功能:

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...

展开
收起
一枚小鲜肉帅哥 2020-06-20 21:00:59 2957 0
1 条回答
写回答
取消 提交回答
  • 菜不可及的程序猿

    你文件读取出来的$content,你看看是什么类型诶..读取出来的$content本身就是个对象呢? 我看了PHP官网上的文档,函数 file-get-contents() 的返回值类型是 string。textarea 中输出 object 原因在于那段 JavaScript 代码,JavaScript 把 PHP 传过来的包含 json 数据的 string 自动转换成 json 对象了。######

     你js判断一下就好了

    var stringWebsites = '<?php echo $content; ?>'; if ( typeof stringWebsites  === object) {     stringWebsites = JSON.stringify(stringWebsites) } console.log(stringWebsites);

     

    ######

    之前绕了些弯路,php 传值给 textarea,并不需要 javascript 中转。代码如下:

    <textarea><?php echo $noteContentString; ?></textarea>
    2020-06-20 21:02:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载