不常见的JSON.parse参数:JSON.parse(<! - ?= data;? - >))

时间:2017-03-26 15:35:06

标签: javascript json parsing

首先,对不起,如果这是一个新手答案,因为我只是一个新手编码。

我只是对我在互联网上找到的这个json.parse方法感到好奇。

所以代码是这样的:

var data = JSON.parse(<?= data; ?>);

我想知道的是JSON.parse中的参数---&gt; (<?= data; ?>)这意味着什么?

因为据我所知,JSON.parse的语法是JSON.parse(text[, reviver])

谢谢!

3 个答案:

答案 0 :(得分:0)

这是服务器端处理语言(known as Plates),其中data是从服务器传递到HTML文件的变量。它不是原生JavaScript;相反,它是客户端中变量的服务器端呈现。

<?= data; ?>在调用变量的任何时间点呈现data变量的全部内容。在您的情况下,它是一个在客户端JavaScript中解析的JSON变量。 <?= data; ?>以字符串化JSON的形式返回data的内容(例如JSON.stringify(data)),然后在输出中使用JSON.parse()使其成为您的可用变量客户端JavaScript。

答案 1 :(得分:0)

编辑:快速Google搜索显示这是一种名为Plates的PHP模板语言。 this

这看起来像一个模板标记,它会评估变量的值并在呈现模板时将其导出。我无法确定,但一般来说,模板使用分隔符来表示不同的东西,看起来这就是这里发生的事情。

我认为这个具体的例子正在输出一个名为<?=的变量,因为它使用了这个开头分隔符:<uses-permission android:name="android.permission.INTERNET"/> ,因为它有等号,通常表示输出。这是在页面在浏览器中呈现之前完成的,更重要的是,在运行此特定脚本之前;因此,我所期望的是,在呈现模板时,数据将解析为某些JSON字符串,然后在运行脚本时,该字符串将被解析为JavaScript对象。

答案 2 :(得分:0)

<?= data; ?>应该是一个php变量,整个过程将被客户端呈现时从服务器发送的有效JSON所取代。