Habe es rausgefunden ... an den Single-Quotes liegts nicht.
Der Fehler kommt auch, wenn ich Double-Quotes verwende.
Das Problem liegt daran, dass die Schnittstelle für den Key "addresses" nicht ein "klassisches" JSON-Array erwartet sondern einen String, in dem der Array "gedumpt" ist.
Konkret: wenn ich im JSON drin Double-Quotes verwende und den Value von "addresses" in Single-Quotes setze geht es. Oder ich setze den String-Dump des Arrays ebenfalls in Double-Quotes und escape alle Double-Quotes im Array-String selbst (\") .. das klappt auch.
{
"lastName": "Muster AG",
"name": "Muster AG",
"addresses": "[{\"type\": \"MAIN\", \"address\": \"Bahnhofstrasse 12\", \"zip\": \"8000\", \"city\": \"Zürich\", \"country\": \"CHE\"}]",
"categoryId": "1",
"custom": "<values><customField2>5587</customField2></values>"
}
Finde es schade, dass überall in der API wo Elementwerte ein Array ist (Person >> "addresses", Journal >> "items") ich diesen in einen String packen muss ... obschon JSON gerade für solche Arrays ([] ohne vor- und nachgestelltes Double-Quote) super ist.
shoogenb kannst du meine Ausführung bestätigen?
Und wenn ja: ist da was geplant, das auch Arrays anstelle von Strings in den Werten eines POST-JSON verwendet werden kann?