从Github Pages提供JSON数据

Ish*_*han 10 api json github repository github-pages

我在github上有一个存储库,它在存储库的根目录中包含许多csv,json,yml数据文件.

如何使用Github Pages来提供这些文件?

因此,对于例如:当我去http://username.github.io/reponame/后面

  • /posts- 提供posts.json文件的内容
  • /users- 提供users.json文件的内容
  • /comments- 提供comments.json文件的内容
  • /posts.csv- 提供posts.csv文件的内容

Dee*_*ale 12

您只需要.json在存储库中添加文件,就可以像普通的JSON API一样访问它们

在以下存储库中username.github.io/reponame添加以下文件

posts.json

[
  {"id": 1, "title": "Title 1"},
  {"id": 2, "title": "Title 2"}
]
Run Code Online (Sandbox Code Playgroud)

users.json

[
  {"name": "abc", "email": "abc@example.com"},
  {"name": "xyz", "email": "xyz@example.com"}
]
Run Code Online (Sandbox Code Playgroud)

comments.json

[
  {"post_id": "1", "text": "Comment 1"},
  {"post_id": "2", "text": "Comment 2"}
]
Run Code Online (Sandbox Code Playgroud)

posts.csv

id,title
1,Title 1
2,Title 2
Run Code Online (Sandbox Code Playgroud)

并访问它们

  • http://username.github.io/reponame/posts.json
  • http://username.github.io/reponame/users.json
  • http://username.github.io/reponame/comments.json
  • http://username.github.io/reponame/posts.csv


Ben*_*kin 7

您可以创建index.json而不是index.html获取application/json; charset=utf-8标题。

也就是说,创建: -posts/index.json被送达http://username.github.io/reponame/posts/, -users/index.json被送达http://username.github.io/reponame/users/,等等。

请注意,作为目录,不带尾随斜杠 ( http://username.github.io/reponame/posts) 的访问会返回 301 重定向到带有尾随斜杠的相同路径。也就是说,它可以工作,但您的客户端需要遵循重定向(curl默认情况下不会,curl --location会)并且由于额外的往返而稍微慢一些......

有关工作示例,请参阅https://github.com/cben/sandbox/tree/master/json目录(位于https://cben.github.io/sandbox/json/)。

PS 避免多于一个index.*并将README*文件放在一个目录中;当我在 index.json 旁边添加 README.md 时,README 获胜并在 处提供服务json/,因此我不得不将其重命名为其他名称。

  • 我应该补充一点,我有一个同名的文件和目录,例如 /json.json 和一个带有索引文件的目录,例如 /json/index.json ,直到我删除 json.json 文件,该文件才可以在目录/json/ (2认同)

alv*_*017 5

我正在添加一个关于如何从 github 使用 json 的代码块:

function logResults(json) {
    console.log(json)
}

$.ajax({
    url: "https://raw.githubusercontent.com/cben/sandbox/master/json/index.json",
    dataType: "json"
}).done(function(result){
    console.log(result);
});
Run Code Online (Sandbox Code Playgroud)

请查看 jfiddle 中的示例:https ://jsfiddle.net/v_alishauskaite/dxm8cvkL/1/


Dav*_*uel 1

这种类型的 url(例如:/posts)仅适用于 html 文件。你可以将你的 json 文件命名为posts.html并设置它的开头部分,如下所示:

---
layout: null
permalink: /posts/
---
{ "variable": "value" }
Run Code Online (Sandbox Code Playgroud)

然后,您将到达/posts/posts/处的文件。

唯一的缺点是返回的文件是/posts/index.html,它使用Content-Type: text/htmlmime 类型而不是预期的application/json