如何将Javascript函数的结果转换为只包含JSON字符串的页面?
我需要加载一个url,并在这个页面上的唯一文本是一个JSON字符串 例如,我构建了一个简单的函数来获取星期几:如何将Javascript函数的结果转换为只包含JSON字符串的页面?,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我需要加载一个url,并在这个页面上的唯一文本是一个JSON字符串 例如,我构建了一个简单的函数来获取星期几:getDayOfWeek()。我的实际函数要复杂得多,不能轻易地转换成另一种语言 但我不能简单地将其加载到DOM中。我只需要页面上的文本作为JSON对象 例如: //需要返回:{“day”:“Friday”} 这是一把小提琴: HTML: 假设我在服务器端使用PHP,如何使用PHP计算JS函数的结果并返回JSON字符串?因为您的问题中包含了一个PHP标记(尽管您没有提及): 在php中,
getDayOfWeek()
。我的实际函数要复杂得多,不能轻易地转换成另一种语言
但我不能简单地将其加载到DOM中。我只需要页面上的文本作为JSON对象
例如:
//需要返回:{“day”:“Friday”}
这是一把小提琴:
HTML:
假设我在服务器端使用PHP,如何使用PHP计算JS函数的结果并返回JSON字符串?因为您的问题中包含了一个PHP标记(尽管您没有提及):
在php中,可以根据一些参数生成代码。例如,在GET请求中可以有一个参数,如:http://example.com/what_day_is_it?onlyJSON=true
然后在代码中,将可视部分包装在
<!-- Your JSON print goes here -->
<?php if ($_GET['onlyJSON']){ ?>
<span id="day-of-week">
</span>
<!-- Your HTML code without parameter goes here-->
<?php } else { ?>
<span> MY BIG PAGE </span>
<? } ?>
这将使页面仅显示您的JSON。从文本的角度来看,将是这样。但是,页面本身(其源代码)将不会只包含该json。它将具有处理它的HTML代码+Javascript。要在JS中拥有一个函数,您需要它成为页面的一部分 您可以安装v8js(一个允许在PHP内部解释Javascript代码的PHP扩展)。本指南介绍v8js的安装和入门:
你的意思是将getDayOfWeek转换为JSON吗?我需要有另一个应用程序调用此网页:并且该网页上的唯一文本是{“day”:“Friday”}
我根本不理解这个问题,但我会尝试用传入的答案来解决它。告诉我我是否正确地理解了您的问题您是否正在尝试创建一个返回当前日期名称的rest服务?请参阅右侧,但我的实际函数是1000行左右的javascript来计算一个简单字符串。不容易转换成PHP。尽管我愿意在必要时使用PHP来获取和构建JSON字符串,而不使用任何html。我需要从另一个需要纯JSON对象的应用程序调用它。把它想象成一个简单的API调用,我就是这么想的。在这种情况下,您需要一个服务器来生成JSON,而不是使用JS函数生成HTML网页。所以你有两个选择。首先是用PHP重写函数。如果您不想离开JS,请将服务器从php更改为NodeJS。它是javascript,您可以在服务器逻辑中按Ctrl+C->Ctrl+V 90%的代码。
function getDayOfWeek() {
var d = new Date();
d.getDay();
var gsDayNames = new Array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);
return gsDayNames[d.getDay()];
}
$('#day').text(getDayOfWeek());
<?php
echo json_encode(array('day' => date('l')));
JSON.stringify({ "day": <YourFunctionThatReturnsTheDay> });
<!-- Your JSON print goes here -->
<?php if ($_GET['onlyJSON']){ ?>
<span id="day-of-week">
</span>
<!-- Your HTML code without parameter goes here-->
<?php } else { ?>
<span> MY BIG PAGE </span>
<? } ?>
function getDayOfWeek() {
var d = new Date();
d.getDay();
var gsDayNames = new Array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);
return gsDayNames[d.getDay()];
}
$('#day').text(getDayOfWeek());
$('#day-of-week').html(JSON.stringify({day: getDayOfWeek()}));