Results 1 to 7 of 7

Thread: JSON parsing en nullable

  1. #1
    Senior Member
    Join Date
    Dec 2006
    Location
    Kruishoutem, Vlaamse Ardennen
    Posts
    1,140

    JSON parsing en nullable

    Allen,
    In een JSON bericht zit een waarde (string, int) die moet toegewezen worden aan een nullable in een Delphi applicatie.
    Ik krijg echter (begrijpelijk) fouten wanneer er een string aan een nullable string gekoppeld wordt.

    Is er een manier om TJson.JsonToObject<T> te tweaken dat hij dat wel degelijk kan? (of een andere manier uiteraard).

    Thanks
    Jan

  2. #2
    Dat valt niet mee. Misschien is het inmiddels beter, maar voorheen (XE5 of 10.0, denk ik), hebben we uiteindelijk een unit van de VCL gekopieerd en aangepast om dat werkend te krijgen, en nulls (of afwezige waarden) om te zetten naar een Nullable<T>.
    1+1=b

  3. #3
    Senior Member
    Join Date
    Dec 2006
    Location
    Kruishoutem, Vlaamse Ardennen
    Posts
    1,140
    Ik was al bang voor dat antwoord. Het is nog redelijk hetzelfde als toen. Allee, ik weet wat te doen.

    Thanks!

  4. #4
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046
    Mocht je interesse hebben om het eens over een andere boeg te gooien: Ik werk al langer in Delphi met type Variant dan er sprake is van JSON. Ik krijg ook de kriebels als ik in code van die lange lijsten overloads zie staan voor elk denkbaar type. Dus heb ik gewoon zelf een JSON parser gerold die heel erg intensief gebruik maakt van Variant. Een Variant kan op zijn beurt een IUnknown referentie bevatten en dus eenderwelk afgeleide interface, dus op zijn beurt ook een JSON-object, net zoals in echte JSON. Of arrays. En ook wou ik veel eenvoudigere en rechtlijnigere syntax dan dat je bij andere Delphi+JSON dingen ziet. Ik gebruik hem op het werk, en daar haalt die heel mooie performance. Vooral als je IJSONDocArray leert gebruiken, dat is wat ingewikkelder, maar levert extra op als je toch weet dat x JSON-dingen in een array doorgaans dezelfde keys hebben met andere values... (Zie hier een voorbeeld.)

  5. #5
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Zelf maak ik gebruik van JSONReader en JSONwriter, die tegenwoordig standaard in delphi zit. In deze link staat het heel goed uitgelegd. Het schijnt ook een stuk sneller te zijn dan de tradionele manier.
    Delphi is great. Lazarus is more powerfull

  6. #6
    Die gebruik ik inderdaad ook, maar ik denk dat de vraagsteller die ook gebruikt als ik het zo lees?

  7. #7
    Senior Member
    Join Date
    Dec 2006
    Location
    Kruishoutem, Vlaamse Ardennen
    Posts
    1,140
    Ik heb intussen een implementatie gedaan door de JSON units in het project te integreren en aan te passen aan mijn noden in het project. Vooral een beetje RTTI gedoe (ik ben daar nooit een straffe in geweest :-) ). Werkt goed met eigenlijk slechts een paar kleine tweaks.
    Het komt er eigenlijk op neer dat ik helemaal niet met JSON wil werken. Ik heb heel veel verschillende objecten die on the fly verstuurd moeten worden naar een api (een serverapplicatie in dot net 6) en die stuurt json terug en dat moet gewoon weer een object worden. De manier -->JsonToObject<aObject>(...) en ObjectToJson(aObject). Die methodes bestaan, maar de Delphi lib zet nullables om als records en verwacht dat ook in return. Dus juist dat er bij inwringen was wat ik wou en dat is nu een feit.
    Die lib aangebracht door jkuiper is wel zeer interessant, maar valt buiten de scoop van hetgeen nodig is. De REST Json lib doet het helemaal niet slecht en is toepasbaar met dus weinig extra coderen.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •