Java 类org.json.simple.Jsoner 实例源码
项目:Necessities
文件:JanetSlack.java
private void openWebSocket(String url) {
try {
ws = new WebSocketFactory().createSocket(url).addListener(new WebSocketAdapter() {
@Override
public void onTextMessage(WebSocket websocket, String message) {
JsonObject json = Jsoner.deserialize(message, new JsonObject());
if (json.containsKey("type")) {
if (json.getString(Jsoner.mintJsonKey("type", null)).equals("message")) {
//TODO: Figure out if there is a way to get the user id of a bot instead of just using janet's
SlackUser info = json.containsKey("bot_id") ? getUserInfo("U2Y19AVNJ") : getUserInfo(json.getString(Jsoner.mintJsonKey("user", null)));
String text = json.getString(Jsoner.mintJsonKey("text", null));
while (text.contains("<") && text.contains(">"))
text = text.split("<@")[0] + '@' + getUserInfo(text.split("<@")[1].split(">:")[0]).getName() + ':' + text.split("<@")[1].split(">:")[1];
String channel = json.getString(Jsoner.mintJsonKey("channel", null));
if (channel.startsWith("D")) //Direct Message
sendSlackChat(info, text, true);
else if (channel.startsWith("C") || channel.startsWith("G")) //Channel or Group
sendSlackChat(info, text, false);
}
}
}
}).connect();
} catch (Exception ignored) {
}
}
项目:shipkit
文件:CreatePullRequest.java
public PullRequest createPullRequest(CreatePullRequestTask task, GitHubApi gitHubApi) throws IOException {
if (task.isDryRun()) {
LOG.lifecycle(" Skipping pull request creation due to dryRun = true");
return null;
}
String headBranch = BranchUtils.getHeadBranch(task.getForkRepositoryName(), task.getVersionBranch());
IncubatingWarning.warn("creating pull requests");
LOG.lifecycle(" Creating a pull request of title '{}' in repository '{}' between base = '{}' and head = '{}'.",
task.getPullRequestTitle(), task.getUpstreamRepositoryName(), task.getBaseBranch(), headBranch);
String body = "{" +
" \"title\": \"" + task.getPullRequestTitle() + "\"," +
" \"body\": \"" + task.getPullRequestDescription() + "\"," +
" \"head\": \"" + headBranch + "\"," +
" \"base\": \"" + task.getBaseBranch() + "\"," +
" \"maintainer_can_modify\": true" +
"}";
String response = gitHubApi.post("/repos/" + task.getUpstreamRepositoryName() + "/pulls", body);
JsonObject pullRequest = Jsoner.deserialize(response, new JsonObject());
return toPullRequest(pullRequest);
}
项目:shipkit
文件:FindOpenPullRequest.java
public PullRequest findOpenPullRequest(String upstreamRepositoryName, String versionBranchRegex, GitHubApi gitHubApi) throws IOException {
String response = gitHubApi.get("/repos/" + upstreamRepositoryName + "/pulls?state=open");
JsonArray pullRequests = Jsoner.deserialize(response, new JsonArray());
for (Object pullRequest : pullRequests) {
PullRequest openPullRequest = PullRequestUtils.toPullRequest((JsonObject) pullRequest);
if (openPullRequest != null && openPullRequest.getRef().matches(versionBranchRegex)) {
LOG.lifecycle(" Found an open pull request with version upgrade on branch {}", openPullRequest.getRef());
return openPullRequest;
}
}
LOG.lifecycle(" New pull request will be opened because we didn't find an existing PR to reuse.");
return null;
}
项目:shipkit
文件:DefaultReleaseNotesData.java
@Override
public String toJson() {
final StringBuilder improvementsBuilder = new StringBuilder();
final Iterator<Improvement> iterator = improvements.iterator();
while (iterator.hasNext()) {
improvementsBuilder.append(iterator.next().toJson());
if (iterator.hasNext()) {
improvementsBuilder.append(",");
}
}
return String.format(JSON_FORMAT,
Jsoner.escape(version),
Jsoner.escape(String.valueOf(date.getTime())),
contributions.toJson(),
improvementsBuilder.toString(),
Jsoner.escape(previousVersionTag == null ? "" : previousVersionTag),
Jsoner.escape(thisVersionTag)
);
}
项目:shipkit
文件:DefaultImprovement.java
@Override
public String toJson() {
final StringBuilder labelsBuilder = new StringBuilder();
final Iterator<String> iterator = labels.iterator();
while (iterator.hasNext()) {
labelsBuilder.append("\"").append(Jsoner.escape(iterator.next())).append("\"");
if (iterator.hasNext()) {
labelsBuilder.append(",");
}
}
return String.format(JSON_FORMAT,
id.toString(),
Jsoner.escape(title),
Jsoner.escape(url),
labelsBuilder.toString(),
String.valueOf(isPullRequest));
}
项目:shipkit
文件:ProjectContributorsSerializer.java
public ProjectContributorsSet deserialize(String json) {
ProjectContributorsSet set = new DefaultProjectContributorsSet();
try {
LOG.debug("Deserialize project contributors from: {}", json);
JsonArray array = (JsonArray) Jsoner.deserialize(json);
for (Object object : array) {
JsonObject jsonObject = (JsonObject) object;
String name = jsonObject.getString("name");
String login = jsonObject.getString("login");
String profileUrl = jsonObject.getString("profileUrl");
Integer numberOfContributions = jsonObject.getInteger("numberOfContributions");
set.addContributor(new DefaultProjectContributor(name, login, profileUrl, numberOfContributions));
}
} catch (Exception e) {
throw new RuntimeException("Can't deserialize JSON: " + json, e);
}
return set;
}
项目:shipkit
文件:ContributorsSerializer.java
public ContributorsSet deserialize() {
String json = "";
ContributorsSet set = new DefaultContributorsSet();
try {
json = IOUtil.readFully(file);
LOG.info("Deserialize contributors from: {}", json);
JsonArray array = (JsonArray) Jsoner.deserialize(json);
for (Object object : array) {
JsonObject jsonObject = (JsonObject) object;
String name = jsonObject.getString("name");
String login = jsonObject.getString("login");
String profileUrl = jsonObject.getString("profileUrl");
set.addContributor(new DefaultContributor(name, login, profileUrl));
}
} catch (Exception e) {
throw new RuntimeException("Can't deserialize JSON: " + json, e);
}
return set;
}
项目:sonar-stash
文件:StashClient.java
private static JsonObject extractResponse(Response response) throws StashClientException {
PeekableInputStream bodyStream = new PeekableInputStream(response.getResponseBodyAsStream());
try {
if (!bodyStream.peek().isPresent()) {
return null;
}
String contentType = response.getHeader("Content-Type");
if (!JSON.match(contentType.trim())) {
throw new StashClientException("Received response with type " + contentType + " instead of JSON");
}
Reader body = new InputStreamReader(bodyStream);
Object obj = Jsoner.deserialize(body);
return (JsonObject)obj;
} catch (DeserializationException | ClassCastException | IOException e) {
throw new StashClientException("Could not parse JSON response: " + e, e);
}
}
项目:Necessities
文件:Necessities.java
private Property getSkin() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(new URL("https://sessionserver.mojang.com/session/minecraft/profile/136f2ba62be3444ca2968ec597edb57e?unsigned=false").openConnection().getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
JsonObject json = Jsoner.deserialize(response.toString(), new JsonObject());
JsonObject jo = (JsonObject) ((JsonArray) json.get("properties")).get(0);
String signature = jo.getString(Jsoner.mintJsonKey("signature", null)), value = jo.getString(Jsoner.mintJsonKey("value", null));
return new Property("textures", value, signature);
} catch (Exception ignored) {
}
return null;
}
项目:Necessities
文件:Necessities.java
private void getDevInfo() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(new URL("http://galaxygaming.gg/staff.json").openConnection().getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
JsonObject json = Jsoner.deserialize(response.toString(), new JsonObject());
JsonArray ar = (JsonArray) json.get("devs");
JsonObject ls = (JsonObject) json.get("Lavasurvival");
JsonArray lsDevs = (JsonArray) ls.get("devs");
for (int i = 0; i < lsDevs.size(); i++) {
int devID = lsDevs.getInteger(i);
JsonObject dev = (JsonObject) ar.stream().filter(a -> devID == ((JsonObject) a).getInteger(Jsoner.mintJsonKey("devID", null))).findFirst().orElse(null);
if (dev != null)
this.devs.add(new DevInfo(dev));
}
} catch (Exception ignored) {
}
}
项目:Necessities
文件:User.java
public void setSkin(UUID uuid) {//TODO make this refresh their skin. Currently changes their gameprofile to have correct skin... but doesn't refresh the player
if (bukkitPlayer == null)
return;
GameProfile profile = ((CraftPlayer) bukkitPlayer).getHandle().getProfile();
try {
Field prop = profile.getProperties().getClass().getDeclaredField("properties");
prop.setAccessible(true);
Multimap<String, Property> properties = (Multimap<String, Property>) prop.get(profile.getProperties());
BufferedReader in = new BufferedReader(new InputStreamReader(new URL("https://sessionserver.mojang.com/session/minecraft/profile/" + uuid.toString().replaceAll("-", "") + "?unsigned=false").openConnection().getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
JsonObject json = Jsoner.deserialize(response.toString(), new JsonObject());
JsonObject jo = (JsonObject) ((JsonArray) json.get("properties")).get(0);
String signature = jo.getString(Jsoner.mintJsonKey("signature", null)), value = jo.getString(Jsoner.mintJsonKey("value", null));
properties.removeAll("textures");
properties.put("textures", new Property("textures", value, signature));
} catch (Exception e) {
e.printStackTrace();
}
}
项目:Necessities
文件:JanetSlack.java
/**
* Sends a message to slack.
* @param message The message to send.
*/
//sendPost("https://slack.com/api/chat.postMessage?token=" + token + "&channel=%23" + channel + "&text=" + ChatColor.stripColor(message.replaceAll(" ", "%20")) + "&as_user=true&pretty=1");
public void sendMessage(String message) {
message = ChatColor.stripColor(message);
if (message.endsWith("\n"))
message = message.substring(0, message.length() - 1);
JsonObject json = new JsonObject();
json.put("text", message);
try {
HttpsURLConnection con = (HttpsURLConnection) hookURL.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json;");
con.setRequestProperty("Accept", "application/json,text/plain");
con.setRequestMethod("POST");
OutputStream os = con.getOutputStream();
os.write(Jsoner.serialize(json).getBytes("UTF-8"));
os.close();
InputStream is = con.getInputStream();
is.close();
con.disconnect();
} catch (Exception ignored) {
}
}
项目:Necessities
文件:JanetSlack.java
private void connect() {
if (isConnected)
return;
try {
URL url = new URL("https://slack.com/api/rtm.connect?token=" + token);
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setRequestMethod("POST");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
JsonObject json = Jsoner.deserialize(response.toString(), new JsonObject());
String webSocketUrl = json.getString(Jsoner.mintJsonKey("url", null));
if (webSocketUrl != null)
openWebSocket(webSocketUrl);
} catch (Exception ignored) {
}
setUsers();
setUserChannels();
sendPost("https://slack.com/api/users.setPresence?token=" + this.token + "&presence=auto");
isConnected = true;
sendMessage("Connected.");
}
项目:Necessities
文件:JanetSlack.java
private void setUsers() {
try {
URL url = new URL("https://slack.com/api/users.list?token=" + token + "&presence=true");
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setRequestMethod("POST");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
JsonObject json = Jsoner.deserialize(response.toString(), new JsonObject());
//Map users
JsonArray users = (JsonArray) json.get("members");
for (Object u : users) {
JsonObject user = (JsonObject) u;
if (user.getBoolean(Jsoner.mintJsonKey("deleted", null)))
continue;
String id = user.getString(Jsoner.mintJsonKey("id", null));
if (!userMap.containsKey(id))
userMap.put(id, new SlackUser(user));
}
} catch (Exception ignored) {
}
}
项目:Necessities
文件:JanetSlack.java
private void setUserChannels() {
try {
URL url = new URL("https://slack.com/api/im.list?token=" + token);
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setRequestMethod("POST");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
JsonObject json = Jsoner.deserialize(response.toString(), new JsonObject());
//Map user channels
for (Object i : (JsonArray) json.get("ims")) {
JsonObject im = (JsonObject) i;
String userID = im.getString(Jsoner.mintJsonKey("user", null));
if (userMap.containsKey(userID))
userMap.get(userID).setChannel(im.getString(Jsoner.mintJsonKey("id", null)));
}
} catch (Exception ignored) {
}
}
项目:Necessities
文件:JanetSlack.java
SlackUser(JsonObject json) {
this.id = json.getString(Jsoner.mintJsonKey("id", null));
this.name = json.getString(Jsoner.mintJsonKey("name", null));
if (json.getBoolean(Jsoner.mintJsonKey("is_bot", null))) {
this.isBot = true;
this.rank = 2;
} else if (json.getBoolean(Jsoner.mintJsonKey("is_primary_owner", null)))
this.rank = 3;
else if (json.getBoolean(Jsoner.mintJsonKey("is_owner", null)))
this.rank = 2;
else if (json.getBoolean(Jsoner.mintJsonKey("is_admin", null)))
this.rank = 1;
else if (json.getBoolean(Jsoner.mintJsonKey("is_ultra_restricted", null)))
this.rank = -2;
else if (json.getBoolean(Jsoner.mintJsonKey("is_restricted", null)))
this.rank = -1;
//else leave it at 0 for member
}
项目:Necessities
文件:JanetSlack.java
void sendPrivateMessage(String message) {
if (message.endsWith("\n"))
message = message.substring(0, message.length() - 1);
JsonObject json = new JsonObject();
json.put("text", message);
json.put("channel", this.channel);
try {
HttpsURLConnection con = (HttpsURLConnection) hookURL.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json;");
con.setRequestProperty("Accept", "application/json,text/plain");
con.setRequestMethod("POST");
OutputStream os = con.getOutputStream();
os.write(Jsoner.serialize(json).getBytes("UTF-8"));
os.close();
InputStream is = con.getInputStream();
is.close();
con.disconnect();
} catch (Exception ignored) {
}
}
项目:Necessities
文件:Utils.java
/**
* Gets the uuid of an offline player based on their name.
* @param name The name to search for.
* @return The uuid of an offline player based on their name.
*/
public static UUID getOfflineID(String name) {
if (name == null)
return null;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(new URL("https://api.mojang.com/users/profiles/minecraft/" + name).openConnection().getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null)
response.append(inputLine);
in.close();
return UUID.fromString(((String) Jsoner.deserialize(response.toString(), new JsonObject()).get("id")).replaceAll("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})", "$1-$2-$3-$4-$5"));
} catch (Exception ignored) {
}
return null;
}
项目:sonar-coverage-evolution
文件:DefaultSonarClientTest.java
@Test
public void testExtractMeasure() throws Exception {
JsonObject o = readJsonResource("componentMeasure.json");
assertEquals(
DefaultSonarClient.extractMeasure(o, CoreMetrics.COMPLEXITY),
Optional.of("12")
);
assertEquals(
DefaultSonarClient.extractMeasure(
(JsonObject) Jsoner.deserialize("{}"),
CoreMetrics.COMPLEXITY),
Optional.empty()
);
}
项目:shipkit
文件:GistsApi.java
/**
* Creates a Gist with the given fileContent and uploads it.
* Returns the url that you can use to access the uploaded Gist.
*
* @param fileContent the content which will be uploaded
*/
public String uploadFile(String fileName, String fileContent) throws Exception {
String body = getBody(fileName, fileContent);
String response = gitHubApi.post("/gists", body);
JsonObject responseJson = (JsonObject) Jsoner.deserialize(response);
return responseJson.getString("html_url");
}
项目:shipkit
文件:ReleaseNotesSerializer.java
public Collection<ReleaseNotesData> deserialize(String jsonData) {
try {
final JsonArray jsonArray = (JsonArray) Jsoner.deserialize(jsonData);
return deserialize(jsonArray);
} catch (DeserializationException e) {
throw new RuntimeException("Can't deserialize JSON: " + jsonData, e);
}
}
项目:shipkit
文件:GitCommitSerializer.java
public GitCommit deserialize(String jsonData) {
try {
final JsonObject jsonObject = (JsonObject) Jsoner.deserialize(jsonData);
return deserialize(jsonObject);
} catch (DeserializationException e) {
throw new RuntimeException("Can't deserialize JSON: " + jsonData, e);
}
}
项目:shipkit
文件:DefaultContributionSetSerializer.java
public DefaultContributionSet deserialize(String jsonData) {
try {
final JsonObject jsonObject = (JsonObject) Jsoner.deserialize(jsonData);
return deserialize(jsonObject);
} catch (DeserializationException e) {
throw new RuntimeException("Can't deserialize JSON: " + jsonData, e);
}
}
项目:shipkit
文件:GitCommit.java
@Override
public String toJson() {
return String.format(JSON_FORMAT,
Jsoner.escape(commitId),
Jsoner.escape(email),
Jsoner.escape(author),
Jsoner.escape(message));
}
项目:shipkit
文件:DefaultImprovementSerializer.java
public DefaultImprovement deserialize(String jsonData) {
try {
final JsonObject jsonObject = (JsonObject) Jsoner.deserialize(jsonData);
return deserialize(jsonObject);
} catch (DeserializationException e) {
throw new RuntimeException("Can't deserialize JSON: " + jsonData, e);
}
}
项目:shipkit
文件:GitHubObjectFetcher.java
private JsonObject parseJsonFrom(URLConnection urlConnection) throws IOException, DeserializationException {
InputStream response = urlConnection.getInputStream();
String content = IOUtil.readFully(response);
LOG.info("GitHub API responded successfully.");
return (JsonObject) Jsoner.deserialize(content);
}
项目:shipkit
文件:GitHubListFetcher.java
private List<JsonObject> parseJsonFrom(URLConnection urlConnection) throws IOException, DeserializationException {
InputStream response = urlConnection.getInputStream();
LOG.info("Reading remote stream from GitHub API");
String content = IOUtil.readFully(response);
LOG.info("GitHub API responded successfully.");
@SuppressWarnings("unchecked")
List<JsonObject> issues = (List<JsonObject>) Jsoner.deserialize(content);
LOG.info("GitHub API returned {} Json objects.", issues.size());
return issues;
}
项目:sonar-coverage-evolution
文件:DefaultSonarClientTest.java
private JsonObject readJsonResource(String name) throws DeserializationException, IOException {
return (JsonObject) Jsoner.deserialize(new InputStreamReader(getClass().getClassLoader().getResourceAsStream(name)));
}
项目:shipkit
文件:GitHubStatusCheck.java
private JsonObject getStatusCheck(MergePullRequestTask task, GitHubApi gitHubApi) throws IOException {
String statusesResponse = gitHubApi.get("/repos/" + task.getUpstreamRepositoryName() + "/commits/" + task.getPullRequestSha() + "/status");
return Jsoner.deserialize(statusesResponse, new JsonObject());
}
项目:shipkit
文件:DefaultContribution.java
@Override
public String toJson() {
final String serializedCommits = Jsoner.serialize(commits);
return String.format(JSON_FORMAT, serializedCommits);
}
项目:shipkit
文件:DefaultContributionSet.java
@Override
public String toJson() {
final String serializedCommits = Jsoner.serialize(commits);
return String.format(JSON_FORMAT, serializedCommits);
}
项目:shipkit
文件:ProjectContributorsSerializer.java
public String serialize(ProjectContributorsSet contributorsSet) {
Collection<ProjectContributor> allContributors = contributorsSet.getAllContributors();
String json = Jsoner.serialize(allContributors);
LOG.debug("Serialize contributors to: {}", json);
return json;
}
项目:shipkit
文件:ContributorsSerializer.java
public void serialize(ContributorsSet contributorsSet) {
Collection<Contributor> allContributors = contributorsSet.getAllContributors();
String json = Jsoner.serialize(allContributors);
LOG.info("Serialize contributors to: {}", json);
IOUtil.writeFile(file, json);
}
项目:shipkit
文件:DefaultProjectContributor.java
private String escape(String login) {
return Jsoner.escape(login);
}
项目:shipkit
文件:DefaultContributor.java
@Override
public String toJson() {
return String.format(JSON_FORMAT, Jsoner.escape(name), Jsoner.escape(login), Jsoner.escape(profileUrl));
}
项目:sonar-stash
文件:StashCollectorTest.java
private static JsonObject parse(String s) throws Exception {
return (JsonObject) Jsoner.deserialize(s);
}
项目:Necessities
文件:Necessities.java
private DevInfo(JsonObject dev) {
this.mcUUID = UUID.fromString(dev.getString(Jsoner.mintJsonKey("mcUUID", null)));
this.slackID = dev.getString(Jsoner.mintJsonKey("slackID", null));
this.name = dev.getString(Jsoner.mintJsonKey("name", null));
}