EnablingJSONIN

From DataFlex Wiki
Revision as of 13:22, 15 April 2011 by Jka (talk | contribs) (Created page with "Here's how to generate there required files for enabling JSON in your webservice. #Know where your project files are. #Grab DBXRay here : ftp://ftp.stureaps.dk/ #Choose the wor...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Here's how to generate there required files for enabling JSON in your webservice.

  1. Know where your project files are.
  2. Grab DBXRay here : ftp://ftp.stureaps.dk/
  3. Choose the workspace using workspace selector
  4. select Functions|Generate Struct Packages for project


Now you can write code like the following:

 ...

 Use StructPkg\Struct_tReview.pkg
 Use StructPkg\Struct_tProduct.pkg
 Use StructPkg\Struct_tAddProductRequest.pkg
 Use Product.wo
 Use Structures.pkg
 Object oProductJSON is a cWebService
 ...
 
 Procedure CreateProduct String Request  
       tAddProductRequest stRequest
       tJsonNode stJson
          
       If (StringToDoc(oJsonFunctions, &request, &stJson)) Begin 
           Send JsonToStruct of oStructHandler_tAddProductRequest stJson (&stRequest)
           Function_Return (CreateProduct(oProduct, stRequest))
       End
       Else Begin
           Error 666 "String parameter does not contain a valid JSON object"
       End
   End_Procedure

oProduct is a traditional webservice using SOAP.


Now . Given the following structure definitions:

Struct meta

   Boolean success
   String msg    

End_Struct

Struct tReview

   Integer id
   Integer productId
   String comment
   String author

End_Struct

Struct tProduct

   Integer id
   String name
   String company    
   tReview[] reviews

End_Struct

Struct tAddProductRequest

   String token
   tProduct product

End_Struct

Struct tGetProductResponse

   Meta meta
   tProduct product

End_Struct

Struct tRequest

   String token
   Integer identifier

End_Struct

Struct tResponse

   Meta meta
   Integer id   

End_Struct

You will be able to send tAddProductRequest as JSON from the client side as the request parameter