Java 类org.json.simple.JSONObject 实例源码

项目: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) {
    }
}
项目:alvisnlp    文件:GeniaJSONReader.java   
private void fillAnnotations(@SuppressWarnings("unused") Logger logger, Section sec, JSONObject json, Map<String,Element> eltMap) {
    JSONArray catanns = (JSONArray) json.get("catanns");
    if (catanns == null) {
        return;
    }
    Layer annotations = sec.ensureLayer(annotationsLayerName);
    for (Object o : catanns) {
        JSONObject ca = (JSONObject) o;
        String id = (String) ca.get("id");
        JSONObject span = (JSONObject) ca.get("span");
        int begin = (int) (long) span.get("begin");
        int end = (int) (long) span.get("end");
        String category = (String) ca.get("category");
        Layer layer = sec.ensureLayer(category);
        Annotation a = new Annotation(this, layer, begin, end);
        annotations.add(a);
        a.addFeature("id", id);
        a.addFeature("category", category);
        eltMap.put(id, a);
    }
}
项目:hono-weather-demo    文件:WeatherDataConsumer.java   
/**
 * handleWeatherMessage takes received telemetry message and processes it to be printed to command line.
 * @param msg Telemetry message received through hono server.
 */
private void handleWeatherMessage(final Message msg) {
    final Section body = msg.getBody();
    //Ensures that message is Data (type of AMQP messaging). Otherwise exits method.
    if (!(body instanceof Data))
        return;
    //Gets deviceID.
    final String deviceID = MessageHelper.getDeviceId(msg);
    //Creates JSON parser to read input telemetry weather data. Prints data to console output.
    JSONParser parser = new JSONParser();
    try {
        Object obj = parser.parse(((Data) msg.getBody()).getValue().toString());
        JSONObject payload = (JSONObject) obj;
        System.out.println(new StringBuilder("Device: ").append(deviceID).append("; Location: ").
                append(payload.get("location")).append("; Temperature:").append(payload.get("temperature")));
    } catch (ParseException e) {
        System.out.println("Data was not sent in a readable way. Check telemetry input.");
        e.printStackTrace();
    }
}
项目:BiglyBT    文件:BEncoder.java   
public static JSONObject
encodeToJSONObject(
    Map<Object,Object>      b_map )
{
    if ( b_map == null ){

        return( null );
    }

    JSONObject  j_map = new JSONObject();

    for ( Map.Entry<Object,Object> entry: b_map.entrySet()){

        Object  key = entry.getKey();
        Object  val = entry.getValue();

        j_map.put((String)key, encodeToJSONGeneric( val ));
    }

    return( j_map );
}
项目:talchain    文件:CallCreate.java   
public CallCreate(JSONObject callCreateJSON) {

        String data = callCreateJSON.get("data").toString();
        String destination = callCreateJSON.get("destination").toString();
        String gasLimit = callCreateJSON.get("gasLimit").toString();
        String value = callCreateJSON.get("value").toString();

        if (data != null && data.length() > 2)
            this.data = Hex.decode(data.substring(2));
        else
            this.data = ByteUtil.EMPTY_BYTE_ARRAY;

        this.destination = Hex.decode(destination);
        this.gasLimit = ByteUtil.bigIntegerToBytes(TestCase.toBigInt(gasLimit));
        this.value = ByteUtil.bigIntegerToBytes(TestCase.toBigInt(value));
    }
项目:personium-core    文件:UpdateTest.java   
/**
 * Cellの更新の$formatがjsonのテスト.
 */
@SuppressWarnings("unchecked")
@Test
public final void Cellの更新の$formatがjsonのテスト() {

    // Cellを更新
    // リクエストヘッダをセット
    HashMap<String, String> headers = new HashMap<String, String>();
    headers.put(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN);
    headers.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
    headers.put(HttpHeaders.IF_MATCH, "*");

    // リクエストボディを生成
    JSONObject requestBody = new JSONObject();
    requestBody.put("Name", cellName);
    res = updateCellQuery(headers, requestBody, QUERY_FORMAT_JSON);

    // Cell更新のレスポンスチェック
    // TODO $formatのチェックが実装されたら変更する必要がある
    assertEquals(HttpStatus.SC_NO_CONTENT, res.getStatusCode());
}
项目:JavaShell    文件:Metrics.java   
/**
 * Gets the plugin specific data.
 * This method is called using Reflection.
 *
 * @return The plugin specific data.
 */
public JSONObject getPluginData() {
    JSONObject data = new JSONObject();

    String pluginName = plugin.getDescription().getName();
    String pluginVersion = plugin.getDescription().getVersion();

    data.put("pluginName", pluginName); // Append the name of the plugin
    data.put("pluginVersion", pluginVersion); // Append the version of the plugin
    JSONArray customCharts = new JSONArray();
    for (CustomChart customChart : charts) {
        // Add the data of the custom charts
        JSONObject chart = customChart.getRequestJsonObject();
        if (chart == null) { // If the chart is null, we skip it
            continue;
        }
        customCharts.add(chart);
    }
    data.put("customCharts", customCharts);

    return data;
}
项目:Minecordbot    文件:Metrics.java   
/**
 * Gets the plugin specific data.
 * This method is called using Reflection.
 *
 * @return The plugin specific data.
 */
public JSONObject getPluginData() {
    JSONObject data = new JSONObject();

    String pluginName = plugin.getDescription().getName();
    String pluginVersion = plugin.getDescription().getVersion();

    data.put("pluginName", pluginName); // Append the name of the plugin
    data.put("pluginVersion", pluginVersion); // Append the version of the plugin
    JSONArray customCharts = new JSONArray();
    for (CustomChart customChart : charts) {
        // Add the data of the custom charts
        JSONObject chart = customChart.getRequestJsonObject();
        if (chart == null) { // If the chart is null, we skip it
            continue;
        }
        customCharts.add(chart);
    }
    data.put("customCharts", customCharts);

    return data;
}
项目:ArchersBattle    文件:Metrics.java   
/**
 * Gets the plugin specific data.
 * This method is called using Reflection.
 *
 * @return The plugin specific data.
 */
public JSONObject getPluginData() {
    JSONObject data = new JSONObject();

    String pluginName = plugin.getDescription().getName();
    String pluginVersion = plugin.getDescription().getVersion();

    data.put("pluginName", pluginName); // Append the name of the plugin
    data.put("pluginVersion", pluginVersion); // Append the version of the plugin
    JSONArray customCharts = new JSONArray();
    for (CustomChart customChart : charts) {
        // Add the data of the custom charts
        JSONObject chart = customChart.getRequestJsonObject();
        if (chart == null) { // If the chart is null, we skip it
            continue;
        }
        customCharts.add(chart);
    }
    data.put("customCharts", customCharts);

    return data;
}
项目:talchain    文件:Transaction.java   
public Transaction(JSONObject callCreateJSON) {

        String dataStr = callCreateJSON.get("data").toString();
        String gasLimitStr = Utils.parseUnidentifiedBase(callCreateJSON.get("gasLimit").toString());
        String gasPriceStr = Utils.parseUnidentifiedBase(callCreateJSON.get("gasPrice").toString());
        String nonceStr = callCreateJSON.get("nonce").toString();
        String secretKeyStr = callCreateJSON.get("secretKey").toString();
        String toStr = callCreateJSON.get("to").toString();
        String valueStr = callCreateJSON.get("value").toString();

        this.data = Utils.parseData(dataStr);
        this.gasLimit = !gasLimitStr.isEmpty() ? new BigInteger(gasLimitStr).toByteArray() : new byte[]{0};
        this.gasPrice = Utils.parseLong(gasPriceStr);
        this.nonce = Utils.parseLong(nonceStr);
        this.secretKey = Utils.parseData(secretKeyStr);
        this.to = Utils.parseData(toStr);
        this.value = Utils.parseLong(valueStr);
    }
项目:personium-core    文件:LogTest.java   
/**
 * ログファイルに対するGETで200が返却されること.
 */
@SuppressWarnings("unchecked")
@Test
public final void ログファイルに対するGETで200が返却されること() {
    JSONObject body = new JSONObject();
    body.put("level", "INFO");
    body.put("action", "POST");
    body.put("object", "ObjectData");
    body.put("result", "resultData");

    CellUtils.event(MASTER_TOKEN_NAME, HttpStatus.SC_OK, Setup.TEST_CELL1, body.toJSONString());

    TResponse response = Http.request("cell/log-get.txt")
            .with("METHOD", HttpMethod.GET)
            .with("token", AbstractCase.MASTER_TOKEN_NAME)
            .with("cellPath", Setup.TEST_CELL1)
            .with("collection", CURRENT_COLLECTION)
            .with("fileName", DEFAULT_LOG)
            .with("ifNoneMatch", "*")
            .returns();
    response.debug();
    String responseBody = response.getBody();
    assertTrue(0 < responseBody.length());
    response.statusCode(HttpStatus.SC_OK);
}
项目:NeuralNetworkAPI    文件:Metrics.java   
/**
 * Gets the plugin specific data.
 * This method is called using Reflection.
 *
 * @return The plugin specific data.
 */
public JSONObject getPluginData() {
    JSONObject data = new JSONObject();

    String pluginName = plugin.getDescription().getName();
    String pluginVersion = plugin.getDescription().getVersion();

    data.put("pluginName", pluginName); // Append the name of the plugin
    data.put("pluginVersion", pluginVersion); // Append the version of the plugin
    JSONArray customCharts = new JSONArray();
    for (CustomChart customChart : charts) {
        // Add the data of the custom charts
        JSONObject chart = customChart.getRequestJsonObject();
        if (chart == null) { // If the chart is null, we skip it
            continue;
        }
        customCharts.add(chart);
    }
    data.put("customCharts", customCharts);

    return data;
}
项目:alfresco-remote-api    文件:PublicApiClient.java   
public Person getPerson(String personId, int expectedStatus) throws PublicApiException
{
    HttpResponse response = getSingle("people", personId, null, null, "Failed to get person", expectedStatus);

    if(logger.isDebugEnabled())
    {
        logger.debug(response);
    }
    System.out.println(response);

    if (response != null && response.getJsonResponse() != null)
    {
        JSONObject entry = (JSONObject) response.getJsonResponse().get("entry");
        if (entry != null)
        {
            return Person.parsePerson(entry);
        }
    }
    return null;
}
项目:ServerConnect    文件:Metrics.java   
@SuppressWarnings("unchecked")
@Override
      protected JSONObject getChartData() {
          JSONObject data = new JSONObject();
          JSONObject values = new JSONObject();
          HashMap<String, Integer> map = getValues(new HashMap<String, Integer>());
          if (map == null || map.isEmpty()) {
              // Null = skip the chart
              return null;
          }
          boolean allSkipped = true;
          for (Map.Entry<String, Integer> entry : map.entrySet()) {
              if (entry.getValue() == 0) {
                  continue; // Skip this invalid
              }
              allSkipped = false;
              values.put(entry.getKey(), entry.getValue());
          }
          if (allSkipped) {
              // Null = skip the chart
              return null;
          }
          data.put("values", values);
          return data;
      }
项目:Locked    文件:MerchantManager.java   
public static ArrayList<String> getAllNPCs() {
    ArrayList<String> a = new ArrayList<>();
    try {
        File file = plugin.getPath().getAbsoluteFile();
        JSONParser parser = new JSONParser();
        Object parsed = parser.parse(new FileReader(file.getPath()));
        JSONObject jsonObject = (JSONObject) parsed;
        JSONArray npcsArray = (JSONArray) jsonObject.get("npcs");
        for (Object npc : npcsArray) {
            a.add((String) ((JSONObject) npc).get("name"));

        }
    } catch (ParseException | IOException e) {
        e.printStackTrace();
    }
    return a;
}
项目:personium-core    文件:UpdateTest.java   
/**
 * Cellの更新のNameが空のパターンのテスト.
 */
@SuppressWarnings("unchecked")
@Test
public final void Cellの更新のNameが空のパターンのテスト() {

    // Cellを更新
    // リクエストヘッダをセット
    HashMap<String, String> headers = new HashMap<String, String>();
    headers.put(HttpHeaders.AUTHORIZATION, BEARER_MASTER_TOKEN);
    headers.put(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
    headers.put(HttpHeaders.IF_MATCH, "*");

    // リクエストボディを生成
    JSONObject requestBody = new JSONObject();
    requestBody.put("Name", "");

    res = updateCell(headers, requestBody);

    // Cell更新のレスポンスチェック
    assertEquals(HttpStatus.SC_BAD_REQUEST, res.getStatusCode());
    assertEquals(MediaType.APPLICATION_JSON, res.getResponseHeaders(HttpHeaders.CONTENT_TYPE)[0].getValue());
    this.checkErrorResponse(res.bodyAsJson(), "PR400-OD-0006");
}
项目:ServerConnect    文件:Metrics.java   
@SuppressWarnings("unchecked")
@Override
      protected JSONObject getChartData() {
          JSONObject data = new JSONObject();
          JSONObject values = new JSONObject();
          HashMap<String, Integer> map = getValues(new HashMap<String, Integer>());
          if (map == null || map.isEmpty()) {
              // Null = skip the chart
              return null;
          }
          for (Map.Entry<String, Integer> entry : map.entrySet()) {
              JSONArray categoryValues = new JSONArray();
              categoryValues.add(entry.getValue());
              values.put(entry.getKey(), categoryValues);
          }
          data.put("values", values);
          return data;
      }
项目:libtrails    文件:SkinDownloader.java   
public String getSkinUrl(GameProfile prof) throws ParseException {
    Collection<Property> ps = prof.getProperties().get("textures");

    if (ps == null || ps.isEmpty()) {
        return null;
    } else {
        Property p = Iterators.getLast(ps.iterator());

        JSONObject obj = (JSONObject) new JSONParser().parse(
                new String(Base64.getDecoder().decode(p.getValue())));

        obj = ((JSONObject) obj.get("textures"));
        obj = ((JSONObject) obj.get("SKIN"));
        return (String) obj.get("url");
    }
}
项目:JodelAPI    文件:JodelAccount.java   
/**
 * Refreshes the Access Token of the currently used account
 */
public void refreshAccessToken() {
    this.updateHTTPParameter();
    JodelHTTPResponse requestResponse = this.httpAction.getNewAccessToken();
    if (requestResponse.responseCode == 200) {
        String responseMessage = requestResponse.responseMessage;
        JSONParser parser = new JSONParser();
        try {
            JSONObject responseJson = (JSONObject) parser.parse(responseMessage);
            this.accessToken = responseJson.get("access_token").toString();
            this.expirationDate = responseJson.get("expiration_date").toString();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
项目:eXperDB-DB2PG    文件:MySqlConvertMapper.java   
@Override
protected void init() throws FileNotFoundException, IOException, ParseException {
    JSONParser jsonParser = new JSONParser();

    JSONObject convMapObj = (JSONObject)jsonParser.parse(new InputStreamReader(MySqlConvertMapper.class.getResourceAsStream("/convert_map.json")));

    convertPatternValues = new ArrayList<ConvertVO>(30);
    convertDefaultValues = new ArrayList<ConvertVO>(5);
    for(Object key : convMapObj.keySet().toArray()) {
        JSONObject jobj = (JSONObject)convMapObj.get(key);
        String toValue = (String)jobj.get("postgres");
        JSONArray asValues = (JSONArray) jobj.get("mysql");
        if(toValue != null && asValues != null) {
            for (Object asValue : asValues) {
                if(asValue instanceof String) {
                    ConvertVO convVal = new ConvertVO((String)asValue,toValue);
                    if(convVal.getPattern() != null) convertPatternValues.add(convVal);
                    else convertDefaultValues.add(convVal);
                }
            }
        }
    }
}
项目:burstcoin    文件:GetPollIds.java   
@Override
JSONStreamAware processRequest(HttpServletRequest req) {

    int firstIndex = ParameterParser.getFirstIndex(req);
    int lastIndex = ParameterParser.getLastIndex(req);

    JSONArray pollIds = new JSONArray();
    try (DbIterator<Poll> polls = Poll.getAllPolls(firstIndex, lastIndex)) {
        while (polls.hasNext()) {
            pollIds.add(Convert.toUnsignedLong(polls.next().getId()));
        }
    }
    JSONObject response = new JSONObject();
    response.put("pollIds", pollIds);
    return response;

}
项目:personium-core    文件:UserDataUtils.java   
/**
 * ユーザーODataの部分更新を実行し、レスポンスコードをチェックする.
 * @param token トークン
 * @param code 期待するレスポンスコード
 * @param body リクエストボディ
 * @param cell セル名
 * @param box ボックス名
 * @param collection コレクション名
 * @param entityType エンティティタイプ
 * @param id ユーザODataのUUID
 * @param ifMatch If-Matchヘッダー値
 * @return レスポンス
 */
public static TResponse merge(String token, int code, JSONObject body, String cell,
        String box, String collection, String entityType, String id, String ifMatch) {
    TResponse res = Http.request("box/odatacol/merge.txt")
            .with("cell", cell)
            .with("box", box)
            .with("collection", collection)
            .with("entityType", entityType)
            .with("id", id)
            .with("accept", MediaType.APPLICATION_JSON)
            .with("contentType", MediaType.APPLICATION_JSON)
            .with("token", token)
            .with("ifMatch", ifMatch)
            .with("body", body.toJSONString())
            .returns()
            .statusCode(code)
            .debug();
    return res;
}
项目:BiglyBT    文件:EngineImpl.java   
protected void
exportToJSONObject(
    JSONObject      res )

    throws IOException
{
    exportJSONMappings( res, "value_map", first_level_mapping, true );
    exportJSONMappings( res, "ctype_map", second_level_mapping, false );

    res.put( "version", new Long( version ));
    res.put( "az_version", new Long( az_version ));

    res.put( "uid", Base32.encode( uid ));

    if ( update_url != null ){

        res.put( "update_url", update_url );
    }

    res.put( "update_url_check_secs", new Long( update_check_default_secs ));
}
项目:alfresco-remote-api    文件:ProcessDefinitionParser.java   
@Override
public ProcessDefinition parseEntry(JSONObject entry)
{
    ProcessDefinition processDefinition = new ProcessDefinition();
    processDefinition.setId((String) entry.get("id"));
    processDefinition.setKey((String) entry.get("key"));
    processDefinition.setVersion(((Number) entry.get("version")).intValue());
    processDefinition.setName((String) entry.get("name"));
    processDefinition.setDeploymentId((String) entry.get("deploymentId"));
    processDefinition.setTitle((String) entry.get("title"));
    processDefinition.setDescription((String) entry.get("description"));
    processDefinition.setCategory((String) entry.get("category"));
    processDefinition.setStartFormResourceKey((String) entry.get("startFormResourceKey"));
    processDefinition.setGraphicNotationDefined((Boolean) entry.get("graphicNotationDefined"));
    return processDefinition;
}
项目:sonar-coverage-evolution    文件:DefaultSonarClient.java   
protected static <G extends Serializable> Optional<String> extractMeasure(JsonObject apiResult, Metric<G> metric) {
  JsonObject component = apiResult.getMap("component");
  if (component == null) {
    return Optional.empty();
  }
  JsonArray measures = component.getCollection("measures");
  if (measures == null) {
    return Optional.empty();
  }
  return measures.stream()
      .map(o -> (JsonObject) o)
      .filter(o ->
        metric.getKey().equals(o.getString("metric"))
      )
      .map(o ->
        o.getString("value")
      )
      .findFirst();

}
项目: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    文件:GitHubStatusCheck.java   
public PullRequestStatus checkStatusWithRetries() throws IOException, InterruptedException {
    int timeouts = 0;
    while (timeouts < amountOfRetries) {
        JsonObject status = getStatusCheck(task, gitHubApi);
        if (status.getCollection("statuses") == null || status.getCollection("statuses").size() == 0) {
            return PullRequestStatus.NO_CHECK_DEFINED;
        }

        if (allStatusesPassed(status)) {
            return PullRequestStatus.SUCCESS;
        } else {
            int waitTime = 10000 * timeouts;
            Thread.sleep(waitTime);
            timeouts++;
            LOG.lifecycle("Pull Request checks still in pending state. Waiting %d seconds...", waitTime / 1000);
        }
    }
    return PullRequestStatus.TIMEOUT;
}
项目:shipkit    文件:GitHubStatusCheck.java   
private boolean allStatusesPassed(JsonObject status) {
    if (status.getString("state").equals("success")) {
        return true;
    }

    if (hasErrorStates(status)) {
        Collection<JsonObject> statuses = status.getCollection("statuses");

        JsonObject firstError = findFirstError(statuses);
        if (firstError != null) {
            throw new RuntimeException(String.format(
                "Pull request %s cannot be merged. %s. You can check details here: %s",
                task.getPullRequestUrl(),
                firstError.getString("description"),
                firstError.getString("targetUrl")));
        }
    }
    return false;
}
项目: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    文件:GitHubContributorsFetcher.java   
ProjectContributorsSet fetchContributorsForProject(String apiUrl, String repository, String readOnlyAuthToken) {
    LOG.lifecycle("  Querying GitHub API for all contributors for project");
    ProjectContributorsSet result = new DefaultProjectContributorsSet(ignoredContributors);

    try {
        GitHubProjectContributors contributors =
                GitHubProjectContributors.authenticatingWith(apiUrl, repository, readOnlyAuthToken).build();

        while (contributors.hasNextPage()) {
            List<JsonObject> page = contributors.nextPage();
            result.addAllContributors(extractContributors(page, readOnlyAuthToken));
        }
    } catch (Exception e) {
        throw new RuntimeException("Problems fetching and parsing contributors from GitHub repo: '" + repository
                + "', using read only token: '" + readOnlyAuthToken + "'", e);
    }
    return result;
}
项目:shipkit    文件:RecentContributorsFetcher.java   
/**
 * Contributors that pushed commits to the repo within the time span.
 * @param dateSince - must not be null, the since date
 * @param dateUntil - can be null, it means there is no end date
 */
public Collection<Contributor> fetchContributors(String apiUrl, String repository, String readOnlyAuthToken, Date dateSince, Date dateUntil) {
    LOG.info("Querying GitHub API for commits (for contributors)");
    Set<Contributor> contributors = new LinkedHashSet<Contributor>();

    try {
        GitHubCommits commits = GitHubCommits
                .with(apiUrl, repository, readOnlyAuthToken, dateSince, dateUntil)
                .build();

        while (commits.hasNextPage()) {
            List<JsonObject> page = commits.nextPage();
            contributors.addAll(extractContributors(page));
        }
    } catch (Exception e) {
        throw new RuntimeException("Problems fetching commits from GitHub", e);
    }

    return contributors;
}
项目: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;
}
项目:shipkit    文件:GitHubListFetcher.java   
public List<JsonObject> nextPage() throws IOException, DeserializationException {
    if (RELATIVE_LINK_NOT_FOUND.equals(nextPageUrl)) {
        throw new IllegalStateException("GitHub API no more issues to fetch");
    }
    URL url = new URL(nextPageUrl);
    LOG.info("GitHub API querying page {}", queryParamValue(url, "page"));
    LOG.lifecycle("GET " + nextPageUrl);
    URLConnection urlConnection = url.openConnection();
    LOG.info("Established connection to GitHub API");

    String resetInLocalTime = resetLimitInLocalTimeOrEmpty(urlConnection);

    LOG.info("GitHub API rate info => Remaining : {}, Limit : {}, Reset at: {}",
            urlConnection.getHeaderField("X-RateLimit-Remaining"),
            urlConnection.getHeaderField("X-RateLimit-Limit"),
            resetInLocalTime);
    nextPageUrl = extractRelativeLink(urlConnection.getHeaderField("Link"), "next");

    return parseJsonFrom(urlConnection);
}
项目:shipkit    文件:GitHubTicketFetcher.java   
private static List<Improvement> extractImprovements(Collection<Long> tickets, List<JsonObject> issues,
                                                     boolean onlyPullRequests) {
    if (tickets.isEmpty()) {
        return Collections.emptyList();
    }

    ArrayList<Improvement> pagedImprovements = new ArrayList<Improvement>();
    for (JsonObject issue : issues) {
        Improvement i = GitHubImprovementsJSON.toImprovement(issue);
        if (tickets.remove(i.getId())) {
            if (!onlyPullRequests || i.isPullRequest()) {
                pagedImprovements.add(i);
            }

            if (tickets.isEmpty()) {
                return pagedImprovements;
            }
        }
    }
    return pagedImprovements;
}
项目:sonar-stash    文件:StashClient.java   
public void addPullRequestReviewer(PullRequestRef pr, long pullRequestVersion, List<StashUser> reviewers)
throws StashClientException {
  String request = MessageFormat.format(API_ONE_PR, baseUrl, pr.project(), pr.repository(), pr.pullRequestId());

  JsonObject json = new JsonObject();

  JsonArray jsonReviewers = new JsonArray();
  for (StashUser reviewer : reviewers) {
    JsonObject reviewerName = new JsonObject();
    reviewerName.put("name", reviewer.getName());

    JsonObject user = new JsonObject();
    user.put("user", reviewerName);

    jsonReviewers.add(user);
  }

  json.put("reviewers", jsonReviewers);
  json.put("id", pr.pullRequestId());
  json.put("version", pullRequestVersion);

  put(request, json, MessageFormat.format(PULL_REQUEST_PUT_ERROR_MESSAGE, pr.repository(), pr.pullRequestId()));
}
项目: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);
  }
}
项目:sonar-stash    文件:StashCollector.java   
public static StashCommentReport extractComments(JsonObject jsonComments) throws StashReportExtractionException {
  StashCommentReport result = new StashCommentReport();

  JsonArray jsonValues = (JsonArray)jsonComments.get("values");
  if (jsonValues != null) {

    for (Object obj : jsonValues.toArray()) {
      JsonObject jsonComment = (JsonObject)obj;

      StashComment comment = extractComment(jsonComment);
      result.add(comment);
    }
  }

  return result;
}
项目:sonar-stash    文件:StashCollector.java   
public static StashPullRequest extractPullRequest(PullRequestRef pr,
                                                  JsonObject jsonPullRequest) {
  StashPullRequest result = new StashPullRequest(pr);

  long version = getLong(jsonPullRequest, VERSION);
  result.setVersion(version);

  JsonArray jsonReviewers = (JsonArray)jsonPullRequest.get("reviewers");
  if (jsonReviewers != null) {
    for (Object objReviewer : jsonReviewers.toArray()) {
      JsonObject jsonReviewer = (JsonObject)objReviewer;

      JsonObject jsonUser = (JsonObject)jsonReviewer.get("user");
      if (jsonUser != null) {
        StashUser reviewer = extractUser(jsonUser);
        result.addReviewer(reviewer);
      }
    }
  }

  return result;
}
项目: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;
}