---
title: 'JSON-Serialisierung mit Jackson'
url: 'https://www.tutego.de/blog/javainsel/2009/11/json-serialisierung-mit-jackson'
markdown: 'https://www.tutego.de/blog/javainsel/2009/11/json-serialisierung-mit-jackson.md'
date: '2009-11-04'
description: 'Nehmen wir folgende Zeile JavaScript-Code, das ein Person-Objekt mit zwei Properties für Name und Alter definiert. Eine Property wird über ein Schlüssel/Werte-Paar beschrieben: var person = { "name" : "Michael Jackson", "age" : 50 }; Die Definition eines Objekts geschieht in der JSON (JavaScript Ob…'
taxonomy:
  category:
    - Insel
---

# JSON-Serialisierung mit Jackson

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://www.tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://www.tutego.de/blog/javainsel/)

## JSON-Serialisierung mit Jackson

04.11.2009 · [Christian Ullenboom](https://www.tutego.de/blog/javainsel/author/admin/)

Nehmen wir folgende Zeile JavaScript-Code, das ein Person-Objekt mit zwei Properties für Name und Alter definiert. Eine Property wird über ein Schlüssel/Werte-Paar beschrieben:

```java
var person = { "name" : "Michael Jackson", "age" : 50 };
```

Die Definition eines Objekts geschieht in der JSON (JavaScript `Object` Notation). Als Datentypen unterstützt JSON Zahlen, Wahreiswerte, Strings, `Arrays`, `null` und Objekte – wie unser Beispiel zeigt. Die Deklarationen können geschachtelt sein, um Unterobjekte aufzubauen. Zum Zugriff auf die JSON-Daten kommt der Punkt zum Einsatz, sodass der Name nach der Auswertung durch person.name zugänglich ist.

Eine Personenbeschreibung wie diese kann auch in einem `String` stehen, die von JavaScript zur Laufzeit ausgewertet wird.

```java
var json = 'person = { "name" : "Michael Jackson", "age" : 50 };';
eval( json );
```

Der Zugriff auf person.name liefert wie vorher den Namen, denn nach der Auswertung mit `eval()` wird JavaScript ein neues Objekt mit person im Kontext anlegen.

JSON ist besonders praktisch, wenn es darum geht, Daten zwischen einem Server und Browser mit JavaScript-Interpreter auszutauschen. Denn wenn der `String` json nicht von Hand mit einem `String` initialisiert wurde, sondern ein Server die Zeichenkette person = { … }; liefert, haben wir das, was heutzutage in modernen Ajax-Webanwendungen passiert. Die letzte Frage ist nun, wie elegant der Server Zeichenketten im Datenaustauschformat JSON erzeugt und so Objekte überträgt. Den `String` per Hand aufzubauen ist eine Lösung, aber es geht besser.

Die Open-Source Bibliothek Jackson (<http://jackson.codehaus.org/>) gehört zu den populärsten Lösungen, die JSON-Daten einliest und ausgibt und auf JavaBeans überträgt, sodass eine unkomplizierte Serialisierung in JSON möglich wird.

```java
ObjectMapper mapper = new ObjectMapper();
MyClass myObject = mapper.readValue( input, MyClass.class );
mapper.writeValue( output, myObject );
```

Der ObjectMapper übernimmt das Lesen/Schreiben. In der zweiten Zeile wird aus der Eingabequelle input gelesen und ein Objekt vom Typ MyClass rekonstruiert. In der dritten Zeile wird es in die Ausgabe output geschrieben.

JSON ist nicht nur für die Objektübertragung zwischen Server und Browser gut, sondern ist eine elegante Alternative zu XML, wenn es etwa um lokale Konfigurationsdateien geht. JSON ist viel kürzer als XML und kann somit zum Beispiel für Konfigurationsdateien übersichtlicher sein.

Kategorien: [Insel](https://www.tutego.de/blog/javainsel/category/insel/)

[← Alle Beiträge](https://www.tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Bean-Zustände kopieren](https://www.tutego.de/blog/javainsel/2009/11/bean-zustande-kopieren.md)
- Next: [Thema der Woche: Ladebalken über dem Textfeld](https://www.tutego.de/blog/javainsel/2009/11/thema-der-woche-ladebalken-uber-dem-textfeld.md)
