OUTSYSTEMS UYGULAMALARINDA JSON

Forumlar OUTSYSTEMS UYGULAMALARINDA JSON

  • Bu konu boş.
  • Post
    BAYPM
    Moderatör

    JSON, hafif, veri alışverişi formatıdır ve insanlar tarafından okunması ve yazılması kolaydır. JavaScript tabanlıdır, ancak dil bağımsızdır, yani birçok programlama dili ile kullanılabilir. JSON, veri nesnelerini ve dizilerini temsil etmek için kullanılır ve web uygulamalarında veri iletişimi için yaygın olarak kullanılır. Buradan da tahmin edilebileceği gibi Outsystems uygulamalarımızda da verilerimizi JSON formatına çevirerek verilerimiz üzerinde analizler, dönüşümler ve format işlemleri gibi birçok işlem yapılabilir. Ek olarak bazı API hizmetlerinde JSON olarak veri göndermemiz gereken durumlarla karşılaşabiliriz bu gibi durumlarda JSON aracını kullanarak bunu yapabiliriz.

    Herhangi bir client veya server actionı içerisine girdiğimizde JSON Serialize ve JSON Deserialize olmak üzere iki adet araç görebilirsiniz. Bunlar verilerimizi JSONa çevirmek ve daha sonrasında gerekmesi durumunda tekrardan Outsystem structuresine dönüştürmemiz için gerekmektedir.

    Bu araçların kullanımını daha iyi anlayabilmek adına basit bir uygulama yapabiliriz. Elimizde bir kullanıcı listesi olduğunu varsayalım ve öncelikle bunu JSON Serialize ile JSON formatına çevirelim ve Outsystems’in bize nasıl bir formatta veri döndüğünü inceleyelim.

    Öncelikle boş bir sayfada verilerimizi çekelim ve after fetch actionı ekleyelim. Bu action içerisinde öncelikle JSON Serialize kullanarak verimizi JSON’a çevirelim, daha sonrasında JSONSerialize actionının altında dönmüş olduğu JSONu bir Text değişkenine incelemek için atayalım.

    JSON Serialize actionı içerisinde Data kısmına çevirmek istediğimiz veriyi girmemiz gerekiyor. Serialize Default seçeneğini default olarak No da bırakabilirsiniz. Yes seçilmesi durumunda boş olan değerleri varsayılan platform değerlerine çevirecektir. Örnek olarak:

    • Boş bir Boolean değişkenini false,
    • Boş bir integer değişkenini 0,
    • Boş bir tarih-saat değişkenini 1900-01-01T00:00:00 olacak şekilde bize döndürecektir.

    Son olarak sayfamızda incelemek için Expression içerisinde değişkenimizi gösterelim.

    Ekrandaki JSON verisini incelediğimizde de görebileceğimiz gibi bu action her bir veriyi alıp entity adı altında her bir attributeyi ve ona ait olan değerleri bize döndürmektedir.

    Daha sonrasında bu veriler içerisinde adı Benjamin olan kullanıcının yaşını 18 ile değiştirmek istediğimizi varsayalım. Bu işlem için bir javascript kodu kullanabiliriz. Client actionımız içerisinde atama sonrasına bir Javascript aracı ekleyelim.

    Aşağıdaki örnek javascript kodunda Benjamin kullanıcısını buluyoruz ve yaşını 18 olarak güncelliyoruz. Daha sonrasında güncelleyebilmek üzere oluşturduğumuz diğer client actiona gönderiyoruz.

    Güncel JSON çıktısını incelediğimizde görebileceğimiz gibi 21 yaşındaki Benjamin’in yaşı 18 olarak güncellenmiş durumda.

    Ardından bu JSON çıktısını tekrardan Entity/Structure formatına getirmek ve kullanmak isteyebiliriz bu durumda JSON Deserialize aracı işimizi görecektir. Fakat burada Outsystems JSON Serialize’den çevirdiğiniz JSON çıktısını direkt olarak kullanmamıza izin vermiyor. Javascipt kodumuz içerisinde bunu düzenleyerek People içerisindeki Attibutelerimiz olan mapi ayrı bir JSON’a çevirebiliriz ve JSONDerserialize içerisinde bunu kullanabiliriz.

    Burada JSON String alanına çevirmek istediğimiz JSON çıktısını giriyoruz. Data Type olarakda hangi veri türüne dönüştüreceğimizi belirtiyoruz. Eğer bir liste ise List olarak bunu belirtmeyi unutmayınız.

    Daha sonrasında bu aracın bize döndüğü Data’yı uygun bir değişkene atayarak istediğimiz yerde kullanabiliriz.

    Sonuç olarak bir tabloda bu JSON verisini gösterdiğimizde, Benjamin adlı kullanıcının yaşı 18 olarak gözükecektir. Burada yaptığımız işlem tabi ki database üzerisinde bir güncelleme yapmamaktadır. Fakat kullanıcıya manipüle edilmiş bir veri göstermeniz gerektiğinde, tekrar eden verileri göstermek istemediğinizde gibi durumlarda basitçe kullanabilirsiniz.

     

  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.