AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

JSON/Superobject mit Binären Daten

Ein Thema von Shark99 · begonnen am 13. Jul 2016 · letzter Beitrag vom 14. Jul 2016
Antwort Antwort
Seite 2 von 2     12
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#11

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 11:01
"binäre" Daten in einem "String" ... wo es hier Probleme geben kann/wird, ist bei der Codierung, z.B. Umwandlung von Unicode (der Typ String seit D2009) z.B. nach ANSI, jenachdem wie das JSON am Ende gespeichert wird.
Außer SuperObjekt sorgt immer dafür, dass das JSON nur noch ASCII-Zeichen enthält.
Was sollte sonst verwendet werden wenn in den Daten sowohl Unicode Strings, als auch Binäres vorkommen kann (da optionale AES Verschlüsselung). Bytechar?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.409 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 11:22
"wenig" und nicht jede Libt hält sich richtig an alles.
OK, SuperObjekt sollte sich an die Syntax halten, aber wie von SuperObjekt die Strings kodiert werden, weiß ich nicht ganz sicher.

Würde aber alles "Nicht-ASCII" immer mit \u... kodiert, dann gibt es nie Probleme.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 12:01
"wenig" und nicht jede Libt hält sich richtig an alles.
OK, SuperObjekt sollte sich an die Syntax halten, aber wie von SuperObjekt die Strings kodiert werden, weiß ich nicht ganz sicher.

Würde aber alles "Nicht-ASCII" immer mit \u... kodiert, dann gibt es nie Probleme.
Das ist eher kontraproduktiv, denn der String \u... wird im JSON als \\u... dargestellt. Das bringt irgendwie nichts
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.409 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 13:48
Ich meinte doch das JSON-\u , so wie das #123 im Delphi ... das sollte der nicht nochmal maskieren (hoff ich doch, dass der das nicht macht).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#15

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 14:10
"wenig" und nicht jede Libt hält sich richtig an alles.
OK, SuperObjekt sollte sich an die Syntax halten, aber wie von SuperObjekt die Strings kodiert werden, weiß ich nicht ganz sicher.

Würde aber alles "Nicht-ASCII" immer mit \u... kodiert, dann gibt es nie Probleme.
Das ist eher kontraproduktiv, denn der String \u... wird im JSON als \\u... dargestellt. Das bringt irgendwie nichts
Jetzt bist du aber sehr kleinlich, wenn deine Json-Software sich um das escapen kümmern kann, dann wirf ihr doch einfach x000D in den Rachen. Wenn sie damit nicht korrekt umgehen kann, solltest Du einen Weg finden wie \u000D in die Json-Datei kommt. Keine Gedanken muß man sich machen, wenn man Base64 oder auch Base16 codiert.
InAußerdem ist die Rede von "Unicode Characters" je nach Sichtweise würde dies z.B. den Bereich von x0000-001F ausschließen, da es sich hierbei um Steuercodes handelt, was meiner Meinung nach wiederum für Basexx spricht.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 15:01
Ich glaube fast wir reden aneinander vorbei.

Liegt aber wohl daran, dass ich so ein JSON-String niemals direkt erstelle sondern eben erstellen lasse. SuperObject oder das in Delphi eingebaute Gedöns kümmert sich dann darum, dass der von mir beliebig gewählte string JSON-konform in so einem JSON-Objekt abgelegt wird.

Nur so als Beispiel:
Delphi-Quellcode:
var
  lFoo : TFoo;
  lFooStr : string;
  lExpected, lActual: string;
begin
  lExpected := #0 + #1 + #2 + #3 + #4 + #5;

  lFoo := TFoo.Create;
  try
    lFoo.Bar := lExpected;
    lFooStr := lFoo.ToJson( ).AsJSon( );
  finally
    lFoo.Free;
  end;

  lFoo := TFoo.FromJson( lFooStr );
  try
    lActual := lFoo.Bar;
  finally
    lFoo.Free;
  end;

  Assert( lExpected.Equals( lActual ) );
end;
als JSON-Objekt:
Code:
{"bar":"\u0000\u0001\u0002\u0003\u0004\u0005"}
BTW: Der Delphi-Interne JSON-Serialisierer bekommt das zurückwandeln nicht auf den Schirm, da bleibt TFoo.Bar einfach leer
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (14. Jul 2016 um 15:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#17

AW: JSON/Superobject mit Binären Daten

  Alt 14. Jul 2016, 15:21
SuperObject oder das in Delphi eingebaute Gedöns kümmert sich dann darum, dass der von mir beliebig gewählte string JSON-konform in so einem JSON-Objekt abgelegt wird.
Jo, wenn denn die Daten die Du hast, ein String sind. Enthält diese Aneinanderreihung von Werten, Werte die nicht Codierungskonform sind, wird es spannend. Und diese Spannung kannst Du umgehen, indem Du deine Werte nimmst und ihnen eine BaseXX-Codierung zukommen läßt.
Eine weitere Möglichkeit, wäre es, ein Array zu nutzen, dem sollte es ziemlich egal sein welche Daten es bekommt.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf