JSON
JSON (JavaScript Object Notation) ist ein weit verbreitetes Datenformat, das verwendet wird, um strukturierte Daten zu speichern, zu übertragen und auszutauschen. Es ist leicht lesbar für Menschen und einfach zu parsen („analysieren“ oder „verarbeiten“) für Maschinen, was es zu einer idealen Wahl für die Verarbeitung von Daten in verschiedenen Anwendungen macht. In diesem Beitrag werden wir uns damit beschäftigen, was JSON ist und wie es verwendet werden kann, um Multimedia-Inhalte wie Bilder, Videos und Audio zu strukturieren und auszutauschen.
Was ist JSON?
JSON ist ein textbasiertes Datenformat, das auf einer einfachen Syntax basiert und aus Wertpaaren besteht, die in Schlüssel-Wert-Paaren organisiert sind. Es ähnelt der Struktur von JavaScript-Objekten, daher auch der Name „JavaScript Object Notation“, ist aber sprachunabhängig und wird von vielen Programmiersprachen unterstützt. JSON-Daten können in Arrays, Objekten oder verschachtelten Strukturen organisiert sein und eignen sich daher gut für die Darstellung komplexer Daten.
Verwendung von JSON zur Strukturierung und zum Austausch von Multimedia-Inhalten
JSON wird in der Multimedia-Programmierung oft verwendet, um Metadaten zu speichern und Multimedia-Inhalte zu organisieren. Hier sind einige Beispiele, wie JSON in Verbindung mit Multimedia-Inhalten wie Bildern, Videos und Audio verwendet werden kann.
Bildergalerien: JSON kann verwendet werden, um Metadaten für eine Bildergalerie zu speichern, einschließlich Titel, Beschreibung, Dateigröße, Auflösung und andere relevante Informationen zu jedem Bild. Hier ist ein Beispiel für die JSON-Struktur für eine Bildergalerie:
{ "gallery": [ { "title": "Landschaftsbild", "description": "Ein schönes Landschaftsbild mit Bergen und Bäumen.", "file": "landscape.jpg", "size": "2 MB", "resolution": "1920x1080" }, { "title": "Porträtfoto", "description": "Ein Porträtfoto einer Person.", "file": "portrait.jpg", "size": "1.5 MB", "resolution": "1200x800" } ] }
Beispiel: The Geotagger’s world atlas, Flickr: geodata, Mapbox: map
Explanation: citylab.
von Andreas Pirchner
import peasy.*; PeasyCam cam; JSONObject fJSON; JSONArray fItems; JSONObject singleItem; JSONObject link; ArrayList urls = new ArrayList(); ArrayList pics = new ArrayList(); float radius = 600; void setup(){ size(690, 400, P3D); cam = new PeasyCam(this, 0); fJSON = loadJSONObject("https://api.flickr.com/services/feeds/photos_public.gne?tags=nasa+launch&format;=json&nojsoncallback;=1"); fItems = fJSON.getJSONArray("items"); for (int i = 0; i < fItems.size(); i++){ singleItem = fItems.getJSONObject(i); link = singleItem.getJSONObject("media"); String s = link.getString("m"); urls.add(new String(s)); PImage p = loadImage(s); pics.add(p); } } void draw(){ background(10,10,30); drawPics(); } void drawPics(){ float angle = 0; for (int i = 0; i < fItems.size(); i++){ float stepSize = TWO_PI / fItems.size(); // set stepsize for rotation angle = i*stepSize; float px = 0 + (radius * cos(angle)); float py = 0 ; float pz = 0 + (radius * sin(angle)); PImage p = pics.get(i); pushMatrix(); translate(px, py, pz); rotateY(-angle+PI/2); tint(150,150,255,255); image(p, 0, 0); popMatrix(); } }
Komplexere Datenanfragen bei Flickr sind möglich, erfordern jedoch einen Authentifizierungsschlüssel (API-Schlüssel). Diesen Schlüssel erhält man normalerweise vom Datenanbieter, manchmal leichter, manchmal schwieriger.
What are API-Keys?
"An application programming interface key (API key) is a code passed in by computer programs calling an application programming interface (API) to identify the calling program, its developer, or its user to the Web site. API keys are used to track and control how the API is being used, for example to prevent malicious use or abuse of the API (as defined perhaps by terms of service). The API key often acts as both a unique identifier and a secret token for authentication, and will generally have a set of access rights on the API associated with it." (wikipedia.org)
Example 2: Search the NY Times (using an API-Key)
First we have to get an API-Key for authentification.
Then we need to study the available parameters for our search: here
Code-Example: Conneting to the NY Times
JSONObject timesJSON;
String timesURL = "https://api.nytimes.com/svc/search/v2/articlesearch.json";
String apiKey = "5824ca6412e04214a75bedf771b25dd0";
void setup(){
size(690, 400);
background(255);
timesJSON = loadJSONObject(timesURL + "?q=Algorithm?page=0&api-key;=" + apiKey);
println(timesJSON);
}
void draw(){
}
Exercise (30 Minutes):
Get your own API-Key for the NY Times API.
Take to code from above and search for a term (you can chose it yourself).
Visualize the amount of hits and publishing date (e.g. per year) for your term from the JSON response. Remember the difference between JSONObject and JSONArray.