2014-01-15 32 views
0

我认为这是一个关于在Web地址显示json文件的简单问题,以便可以通过Swagger UI进行识别。在web地址显示json数据

地址http://petstore.swagger.wordnik.com/api/api-docs显示json数据,并允许将文件保存为.json文件。我一直无法复制这使用HTML。这是我试过的:

<head> 
<meta http-equiv="content-type" content="application/json; charset=UTF-8"> 
</head> 
<body> 
JSON DATA 
</body> 

文本显示,但保存页面不会保存为json文件。

我应该加上http://petstore.swagger.wordnik.com/api/api-docs是一个目录,而http://petstore.swagger.wordnik.com/api/api-docs/pet也是json数据。

+0

嗯,这是怎么一回事,因为这不是一个JSON文件,也许?这是HTML ...你想要达到什么目的?你想保存的文件只包含“'JSON DATA'”,没有周围的标记?只将“JSON DATA”放在文件中:) –

+0

是的,我只需要http://domain.com/myfile就可以保存为json。但http://domain.com/myfile应该是一个目录,而http://domain.com/myfile/other也包含json。 http://petstore.swagger.wordnik.com/api/api-docs执行此操作。 – davis

+0

如果我只是有data.json我怎么能得到的Web地址默认显示这个文件(与index.html相同的方式)? – davis

回答

1

输出这是你的文件:

JSON DATA 

:)

你没有在那里需要HTML。只是你的JSON数据。您需要使用PHP或.htaccess文件来提供内容类型标题(必须在将任何内容输出到浏览器之前完成!)。一个HTML标题我不认为会按预期工作,因为页面内容仍然是HTML,不管是什么,你说它是。无论内容类型如何,实际内容都以HT​​ML开头,因此CTLR + S将使用HTML内容进行保存。

如果使用PHP,这个文件会为你工作(它保存为index.php文件并请求文件夹时,这将是默认的,因为你在你的问题中留言请求):

<?php header('Content-Type:application/json; charset=utf8'); ?>JSON DATA 

如果您愿意,您可以在?>之后和JSON DATA之前插入一个换行符,PHP将在关闭PHP标签后忽略单行换行。

这将使浏览器检测到源是application/json,而不是将其解释为HTML文件。不过,我怀疑大多数浏览器不知道如何处理json文件。如果你要强制下载文件,(甚至暗示,如“我的-惊人-file.json”的名称),可得做到:

How to force file download with PHP