2012-12-17 123 views
0

我打算做的事情看起来很简单,但我一直无法完成。我有一个JavaScript代码创建一个数组并使用JSON库来创建我的json响应,它存储在一个JavaScript变量中。我把这段代码放到我的服务器上的HTML文件中。我只是希望我的应用程序在接收对页面的请求时将此代码作为JSON接收。不过,我不知道如何为这个回应提供服务。返回一个虚拟JSON响应

我见过很多页面正在做JavaScript的请求,但我只想要一个虚拟的Rest服务。我打电话给该页面,并收到这个小json代码。我知道如何使用一个servlet来实现这一点,但当数据是一个虚拟测试时,我看起来毫无必要这么做。稍后,当我获得更多关于它的信息时,我会实施真正的服务,但这没什么问题。

//Simplified example  
<html> 
<script>  
var tArray = <- //Complex logic executed in the server to create an array with the response so please, I CANNOT create just a .json 
var tResponse = JSON.stringify(tArray); 
//How do I return tResponse to the app requesting this page as if it were a rest service 
</script> 

任何想法?

编辑:

所示的代码是不是我的代码。这只是一种视觉上解释我想达到的方式。请不要评论,只是假设它可以工作并创建一个JavaScript响应。我只想知道如何回复JSON响应。

+0

我相信你想使用'JSON.stringify'。 –

+0

您需要在字符串上调用'JSON.parse',而不是在阵列上 – Bergi

+3

咦?为什么要将JSON封装在HTML文件的脚本中?只提供JSON服务。 – Bergi

回答

0

您可以考虑创建一个空的JSON对象。

tArray = {};

,但它不会是一个数组了:)

+0

不!这是一个非常简单的例子! javascript代码很大且私密。我只是想要想象一下,我将结果转换为JSON,现在我想将其返回给用户。我可以从javascript代码或html文件中做到这一点吗?任何属性或功能? – Capagris

+0

我会去knittl的评论。 –

0
<script> 
    var json = {a:1,b:2}; 
    document.write(JSON.stringify(json)); 
</script> 

你可以试试这个,这将写一个JSON变量转换为字符串一个文件内。如果您请求此页面,它将返回响应。

+0

我试过这个选项。当我通过文件获取请求时。我把上面所有的东西都看成一个字符串。它没有得到评估!这可能是不正确的,但如果返回的字符串是文档 – Capagris

+0

@Capagris中的内容,那么我的方法就没问题了。您可以使用JSON.parse(String)来解析JavaScript中的json。 – kannanrbk

2

那么,答案其实只是:

[] 

存储在扩展.json文件与内容类型application/json服务。

+0

谢谢,但您的回复包含在我的问题中!如果我知道如何做到这一点,我就不会问了。首先,[]还不够,我已经提到过了!在创建JSON对象之前,我有一些必须在JavaScript中执行的逻辑。其次,我不知道如何告诉服务器端的Javascript来提供这种内容类型的响应。 – Capagris

+0

我以为你只是想要一个“假REST服务,返回一个常量字符串”? (»我知道如何使用一个servlet来实现这一点,但是当数据被修复并且是虚拟的时候,这看起来毫无必要。«)对我来说,这意味着一个常量字符串,这就是我在我的答案中提到的。 – knittl

+0

例如,如果您在服务器上运行Node.js,则可以使用'JSON.stringify(obj)'(例如'JSON.stringify('[“array array in array”)将JavaScript对象转换为JSON字符串表示形式]')') – knittl