# Json von URL Lesen



## Waterfront (6. Jul 2014)

Hey Leute 

Ich möchte von einer URL die einzelnen JSON Angaben auslesen..
Joa mit rumgoogeln habe ich dann volgenden Code zusammengeschnipselt, allerdings ist mein Problem, das (ich weis nicht wie das Fachwort dafür ist) das Json Objekt "waterfront" die einzelnen Unterkategorien hat die ich nicht mit json.get("id"); (als Beispiel) auslesen kann.

Mhh habt ihr ne Lösung oder eine bessere Library, wobei ich schon so viel gegoogelt habe und 4-5 Librarys probiert habe hat diese bisher als einzige bei mir funktioniert :S

(Library: [JAPI]https://code.google.com/p/org-json-java/downloads/list[/JAPI])

Hier mein kompletter code:



Spoiler





```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;

import org.json.JSONException;
import org.json.JSONObject;

public class NameAusgeben {

  private static String readAll(Reader rd) throws IOException {
    StringBuilder sb = new StringBuilder();
    int cp;
    while ((cp = rd.read()) != -1) {
      sb.append((char) cp);
    }
    return sb.toString();
  }

  public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
    InputStream is = new URL(url).openStream();
    try {
      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
      String jsonText = readAll(rd);
      JSONObject json = new JSONObject(jsonText);
      return json;
    } finally {
      is.close();
    }
  }

  public static void main(String[] args) throws IOException, JSONException {
    JSONObject json = readJsonFromUrl("https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/waterfront?api_key=8e4d032a-2f58-46fd-b916-287594c69f2b");
    //System.out.println(json.toString());
    System.out.println(json.get("waterfront"));
  }
}
```




Angenommen, ich schreibe "id", dann kommt dieser Fehler:


```
Exception in thread "main" org.json.JSONException: JSONObject["name"] not found.
	at org.json.JSONObject.get(JSONObject.java:459)
	at NameAusgeben.main(NameAusgeben.java:39)
```

LG
Water


----------



## Topfpflanze (6. Jul 2014)

Du musst zuerst das Objekt waterfront holen, und dann von dem die id.


----------



## Waterfront (6. Jul 2014)

Danke, nice :toll:

Ich hab das jetzt so:

```
JSONObject waterfront = (JSONObject) json.get("waterfront");
    System.out.println(waterfront.get("id"));
```

Da hätte ich ja mal selbst drauf kommen könnnen :bloed:

LG
Water


----------

