1

我必须在 URL http://api.twitter.com/1/users/show.json?screen_name=Kaka上做一个 http GET 请求,我会得到一个 JSON 对象,但我不知道我必须怎么做做。

任何人都可以帮助我吗?

谢谢。

4

1 回答 1

3

此 BlackBerry 代码示例展示了您如何执行此操作

或者,从另一个相当简单的示例,使用org.json.me 添加到 BlackBerry Java 6.0 的包

  HttpConnection conn = null;
  InputStream in = null;
  ByteArrayOutputStream out = null;
  try {
     String url = "http://api.twitter.com/1/users/show.json?screen_name=Kaka";
     conn = (HttpConnection) Connector.open(url, Connector.READ);
     conn.setRequestMethod(HttpConnection.GET);

     int code = conn.getResponseCode();
     if (code == HttpConnection.HTTP_OK) {
        in = conn.openInputStream();
        out = new ByteArrayOutputStream();
        byte[] buffer = new byte[in.available()];
        int len = 0;
        while ((len = in.read(buffer)) > 0) {
           out.write(buffer);
        }
        out.flush();
        String response = new String(out.toByteArray());
        JSONObject resObject = new JSONObject(response);
        String key = resObject.getString("Insert Json Key");

        Vector resultsVector = new Vector();
        JSONArray jsonArray = resObject.getJSONArray("Insert Json Array Key");
        if (jsonArray.length() > 0) {
           for (int i = 0; i < jsonArray.length();i++) {
              Vector elementsVector = new Vector();
              JSONObject jsonObj = jsonArray.getJSONObject(i);
              elementsVector.addElement(jsonObj.getString("Insert Json Array Element Key1"));
              elementsVector.addElement(jsonObj.getString("Insert Json Array Element Key2"));
              resultsVector.addElement(elementsVector);
           }
        }
      }
  } catch (Exception e) {
     Dialog.alert(e.getMessage());
  } finally {
     if (out != null) {
        out.close();
     }
     if (in != null) {
        in.close();
     }
     if (conn != null) {
        conn.close();
     }
  }

显然,在第二个示例中,您必须插入 JSON 数据实际使用的 JSON 键的名称(留作海报练习)。此外,您可能会了解 JSON 对象的结构,如对象和数组等。因此,您将 JSON 数据解压缩为 JSONObjects 和 JSONArrays 的代码可能与上面的代码略有不同,具体取决于您自己的 JSON 数据。

于 2012-05-18T22:29:27.173 回答