JSON, Umlaute

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
mannro
Beiträge: 1
Registriert: So 18. Jul 2021, 08:02

JSON, Umlaute

Beitrag von mannro »

Habe folgendes Problem, welches ich, auch nach längerer Recherche, nicht lösen konnrw, und hoffe auf Eure Hilfe:
- ich erstelle ein JSON mittels JSONStreamer aus einem TObject
- Felder, welche String-Typen sind, können Umlaute oder Sonderzeichen enthalten
- Diese sind dann im JSON ohne entsprechende Umwandlung auch so darin enthalten
- Beim zurückschreiben kommt dann eine entsprechende Fehlermeldung, sobald Sonderzeichen vorkommen

function ObjToJSON(AObject: TObject): String;
var Streamer: TJSONStreamer;
begin
Result:= '';
Streamer := TJSONStreamer.Create(nil);
try
Streamer.Options := Streamer.Options + [jsoEnumeratedAsInteger, jsoTStringsAsArray,
jsoLowerPropertyNames, jsoDateTimeAsString, jsoUseFormatString];
if Not(AObject = Nil) then
Result:= Streamer.ObjectToJSONString(AObject);
finally
Streamer.Free;
end;
end;

procedure JSONToObj(AJson: String; AObject: TObject);
var Streamer: TJSONDeStreamer;
begin
Streamer := TJSONDeStreamer.Create(nil);
try
if Not(AObject = Nil) then
try
Streamer.Options:= Streamer.Options + [ jdoCaseInsensitive, jdoIgnorePropertyErrors ];
Streamer.JSONToObject(AJson, AObject);
except
end;
finally
Streamer.Free;
end;
end;

Beispiel-JSON:
{
"abrechnungsweg" : 1,
"email" : "xxx@xxxx",
"fachrichtung" : 0,
"fax" : "xxxxx-xxx",
"fon" : "xxxxx-xxx",
"kvbereich" : "",
"kvnr" : "",
"kzvbereich" : "02",
"kzvnr" : "123456",
"ort" : "Testort",
"plz" : "123456",
"praxisart" : 0,
"praxisname" : "Testpraxis",
"stempelname" : "Testpraxis äÖü",
"strasse" : "Teststrasse",
"url" : "test.de",
"ustid" : "",
"xmlnr" : "34701"
}

Hoffe, dass mir jemand helfen kann.

Update:
Hat sich erledigt, Problem lag in der Synopse SQLite.

Antworten