JSON

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
STEPHAN
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 29. Mai 2008 20:46
Hat sich bedankt: 1 Mal

JSON

Beitrag von STEPHAN »

Hi,

hat jemand ein paar Zeilen, die JSON pasen?

Ich habe gesehen, dass es dazu Code von Pablo gibt, aber ich konnte keine Doku finden.

Danke

Stephan
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: JSON

Beitrag von Jan »

Hallo Stephan,

es gibt im Forum von Pablo ein Beispiel dafür. Wenn Du das nicht findest, kann ich Dir heute Abend Beispiele von mir geben. Das ist garnicht so kompliziert.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
STEPHAN
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 29. Mai 2008 20:46
Hat sich bedankt: 1 Mal

Re: JSON

Beitrag von STEPHAN »

Ein wirkliches Beispiel dazu habe ich bei Pablo im Forum nicht gefunden.

Danke für Deine Hilfe!
STEPHAN
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 29. Mai 2008 20:46
Hat sich bedankt: 1 Mal

Re: JSON

Beitrag von STEPHAN »

Vielen Dank nochmal an Jan, der mit per PM ein Beispiel geschickt hat. Viel einfacher als gedacht ;-)


Kleine Bonusfrage:

Wenn ich Zeit / Datum so zurück bekomme:

1407294000000

Wie konvertiere ich das am schnellsten in Datum und Uhrzeit?
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: JSON

Beitrag von brandelh »

hilfreich wäre es anzugeben, welches Datum und Zeit das darstellen soll.
Gruß
Hubert
STEPHAN
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 29. Mai 2008 20:46
Hat sich bedankt: 1 Mal

Re: JSON

Beitrag von STEPHAN »

Irgendein Datum im August 14.

Mehr konnte ich nicht herausbekommen.

Mit einem Epoch & Unix Timestamp Converter (Website) bekommt man

Wed, 06 Aug 2014 03:00:00 GMT

Das macht Sinn. (Wobei ich die Zeit lokal brauche.)
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: JSON

Beitrag von AUGE_OHR »

STEPHAN hat geschrieben:Wenn ich Zeit / Datum so zurück bekomme:
1407294000000
Wie konvertiere ich das am schnellsten in Datum und Uhrzeit?
im Prinzip so (nur Datum)

Code: Alles auswählen

PROCEDURE MAIN(cNum)
LOCAL nNum := 0
LOCAL dDate
LOCAL nSec

   SET CENTURY ON
   SET EPOCH TO YEAR( DATE() ) - 50
   SET DATE GERMAN

   IF PCOUNT() > 0
      nNum := VAL(cNum)
   ELSE
      QUIT
   ENDIF

   // This count starts at the Unix Epoch on January 1st, 1970 at UTC. 
   ? dDate := CTOD("01.01.1970")
   ? nSec  := 60*60*24
   // letzten 3 Stellen ... tausendstel ? 
   ? nDays := (nNum/1000) / nSec

   ? dDate + nDays

   ? (nNum/1000) - (INT(nDays)*nSec) // -> Seconds -> HH:MM:SS
   WAIT

RETURN
gruss by OHR
Jimmy
STEPHAN
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 29. Mai 2008 20:46
Hat sich bedankt: 1 Mal

Re: JSON

Beitrag von STEPHAN »

Vielen Dank Euch allen für die Hilfe.

Läuft schon alles ganz gut!

Um meine GMT Datum/Zeit Kombination in meine lokale Zeit umzurechnen, muss ich wissen, ob "damals" Sommerzeit war.

Gibts da etwas fertiges, oder muss ich das von Hand machen?

Danke

Stephan
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: JSON

Beitrag von Jan »

Hallo Stephan,

naja, ob Sommerzeit war läßt sich meist nach bestimmten Regeln berechnen. Die in den USA aber anders sind als in Europa. Und zwischendurch auch schon mal gewechselt haben.

Ich habe hier noch keine Diskussion um das Thema gesehen. Wenn es keine fertige Funktion dafür gibt, kannst Du Dir das aber vermutlich anhand der Xbase++-Funktionen relativ einfach selber bauen. Mit den diversen dbase-Derivate ist das wirklich unglaublich enfach, weil sich so einfach mit Datumsangaben rechnen läßt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: JSON

Beitrag von Wolfgang Ciriack »

Hallo,
ich verwende Funktionen aus Pablos ot4xb um GMT Datum/Zeit in Local Datum/Zeit umzurechnen:

Code: Alles auswählen

v_datum:=blank(date())
v_zeit:=space(8)
*** Format ttttttdddddd 
v_zeitstr:=charrem(":",inpm->szeit)+substr(dtoc(inpm->sdatum),1,2)+substr(dtoc(inpm->sdatum),4,2)+substr(dtoc(inpm->sdatum),9,2)
*************
ConvGMTtoLocalTime(v_zeitstr,@v_datum, @v_zeit)
*************
.......
function ConvGMTtoLocalTime(s, d, t)
local dDate:=ctod(substr(s,7,2)+"."+substr(s,9,2)+"."+substr(s,11,2))
local cTime:=substr(s,1,2)+":"+substr(s,3,2)+":"+substr(s,5,2)
 // create 8 bytes xbase string to hold the filetime struct
local cGtm := ChrR(0,8), cLocal := ChrR(0,8)

ft64_SetDateTime(@cGtm , dDate , cTime )
@kernel32:FileTimeToLocalFileTime( cGtm, @cLocal)
ft64_GetDateTime( cLocal , @dDate , @cTime )

d:=dDate
t:=substr(cTime,1,8)
return .T.
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9355
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: JSON

Beitrag von Tom »

eXpress++ enthält Konvertierungsfunktionen für JSON.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: JSON

Beitrag von brandelh »

Windows weiß ob und wann in einer Zeitzone Sommerzeit ist ... näheres dazu in meinem Thread über TimeStamps, falls nicht schon oben eine passende Lösung dabei ist:

http://www.xbaseforum.de/viewtopic.php?f=16&t=2779
Gruß
Hubert
STEPHAN
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Do, 29. Mai 2008 20:46
Hat sich bedankt: 1 Mal

Re: JSON

Beitrag von STEPHAN »

Danke für Eure Hilfe, ich habs jetzt gelöst.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: JSON

Beitrag von AUGE_OHR »

STEPHAN hat geschrieben:Um meine GMT Datum/Zeit Kombination in meine lokale Zeit umzurechnen, muss ich wissen, ob "damals" Sommerzeit war.
die beiden Datums Werte bekommst du so

Code: Alles auswählen

PROCEDURE MAIN
LOCAL dDate := DATE()
LOCAL nYear := YEAR(dDate)
LOCAL i
LOCAL iMax
LOCAL dStart
LOCAL dTest
LOCAL aRet  := {}

   dStart := STOD(STRZERO(nYear,4)+"0401")
   FOR i := 1 TO 7
      dTest := dStart -i
      IF DOW(dTest) = 1
         AADD(aRet,dTest)
         EXIT
      ENDIF
   NEXT

   dStart := STOD(STRZERO(nYear,4)+"1101")
   FOR i := 1 TO 7
      dTest := dStart -i
      IF DOW(dTest) = 1
         AADD(aRet,dTest)
         EXIT
      ENDIF
   NEXT

   iMax := LEN(aRet)
   FOR i := 1 TO iMax
      ? aRet[i]
   NEXT

   IF dDate >= aRet[1] .AND. dDate <= aRet[2]
      ? "Sommerzeit +1"
   ELSE
      ? "Winterzeit +0"
   ENDIF
   WAIT

RETURN
gruss by OHR
Jimmy
Antworten