A JSP tag library supporting access to various JSON constructs as tags. This is currently targeted at the V4 GitHub API.
static String data2health_org = "organization(login:data2health) {"
+ " id,"
+ " login,"
+ " repositories(first:100, orderBy:{field:NAME, direction: ASC}) {"
+ " nodes {"
+ " name,"
+ " description,"
+ " url,"
+ " milestones(first:100) {"
+ " nodes {"
+ " id,"
+ " title,"
+ " description,"
+ " dueOn,"
+ " creator{login}"
+ " }"
+ " },"
+ " repositoryTopics(first:100) {"
+ " nodes {"
+ " topic{name}"
+ " }"
+ " }"
+ " }"
+ " }"
+ " members(first:100) {"
+ " nodes {"
+ " id,name,bio,email,login,avatarUrl"
+ " }"
+ " }"
+ "}";
This first bit is the start of the returned object
{"data": {"organization": {
"repositories": {"nodes": [
{
"repositoryTopics": {"nodes": [
{"topic": {"name": "data2health"}},
{"topic": {"name": "pea"}}
]},
"name": "AcknowledgementsTagLib",
"description": "JSP Tag library providing access to entities and relationships extracted from PubMed Central publications",
"milestones": {"nodes": []},
"url": "https://github.com/data2health/AcknowledgementsTagLib"
},
{
"repositoryTopics": {"nodes": [
{"topic": {"name": "data2health"}},
{"topic": {"name": "pea"}}
]},
"name": "CD2H-driveTagLib",
"description": null,
"milestones": {"nodes": []},
"url": "https://github.com/data2health/CD2H-driveTagLib"
},
This second bit is the start of the members section
"members": {"nodes": [
{
"avatarUrl": "https://avatars2.githubusercontent.com/u/10997947?v=4",
"name": "Dave Eichmann",
"bio": "Director, U. of Iowa School of Library and Information Science",
"id": "MDQ6VXNlcjEwOTk3OTQ3",
"login": "eichmann",
"email": "david-eichmann@uiowa.edu"
},
<h1>CD2H GitHub Organization</h1>
<p>These are repositories owned by "data2health". (<a href="repos.jsp">switch to repository view</a>)</p>
<json:setAPI API="GitHub">
<json:object queryName="data2health_org" targetName="organization">
<div style="width: 60%; padding: 0px 0px 0px 0px; float: left">
<h3>Repositories Owned by data2health</h3>
<hr>
<json:object targetName="repositories">
<json:array label="nodes">
<json:object>
<h4><a href="<json:data label="url"/>"><json:data label="name"/></a></h4>
<p><json:data label="description"/>
<json:object targetName="repositoryTopics">
<ol class="bulletedList">
<json:array label="nodes">
<json:object>
<json:object targetName="topic">
<li><json:data label="name"/>
</json:object>
</json:object>
</json:array>
</ol>
</json:object>
<json:object targetName="milestones">
<json:array label="nodes">
<c:if test="${json:isFirstArrayElement() == true}">
<table>
<tr><th>Title</th><th>Due On</th><th>Description</th><th>Creator</th></tr>
</c:if>
<json:object>
<tr>
<td><json:data label="title"/></td>
<td><json:data label="dueOn"/></td>
<td><json:data label="description"/></td>
<td><json:object targetName="creator"><a href="https://github.com/<json:data label="login"/>"><json:data label="login"/></a></json:object></td>
</tr>
</json:object>
<c:if test="${json:isLastArrayElement() == true}">
</table>
</c:if>
</json:array>
</json:object>
</json:object>
</json:array>
</json:object>
</div>
<div style="width: 35%; padding: 0px 0px 0px 50px; float: left">
<h3>Members</h3>
<hr>
<json:object targetName="members">
<ol class="bulletedList">
<json:array label="nodes">
<json:object>
<li><img align="top" width="40px" src="<json:data label="avatarUrl"/>"> <b><json:data label="name"/></b>
(<a href="https://github.com/<json:data label="login"/>"><json:data label="login"/></a>)
<json:data label="bio"/>
</json:object>
</json:array>
</ol>
</json:object>
</div>
</json:object>
</json:setAPI>