Elm:
JSON এর সাথে কাজ করা

কিভাবে:

Elm জেসন হ্যান্ডলিংকে স্পষ্টতা এবং নিরাপত্তা দিয়ে ট্রিট করে, মূলত Json.Decode এবং Json.Encode মডিউলগুলি ব্যবহার করে। JSON নিয়ে কাজ করা শুরু করতে, আপনার প্রথমে আপনার ডেটা টাইপের জন্য একটি ডিকোডার ডিফাইন করতে হবে। ধরা যাক, আমরা একটি সাধারণ ইউজার প্রোফাইল অবজেক্ট নিয়ে কাজ করছি।

প্রথমে, আপনার Elm টাইপ ডিফাইন করুন:

type alias UserProfile = 
    { id : Int
    , name : String
    , email : String
    }

JSON কে Elm এ ডিকোড করা

UserProfile টাইপে একটি JSON স্ট্রিং ডিকোড করতে, একটি ডিকোডার তৈরি করুন:

import Json.Decode exposing (Decoder, int, string, field, map3)

userProfileDecoder : Decoder UserProfile
userProfileDecoder =
    map3 UserProfile
        (field "id" int)
        (field "name" string)
        (field "email" string)

একটি JSON অবজেক্ট ডিকোড করতে:

import Json.Decode exposing (decodeString)

jsonString : String
jsonString = 
    """{"id": 1, "name": "John Doe", "email": "john@example.com"}"""

decoded : Result String UserProfile
decoded =
    decodeString userProfileDecoder jsonString

{- নমুনা আউটপুট:
Result.Ok { id = 1, name = "John Doe", email = "[email protected]" }
-}

Elm কে JSON এ এনকোড করা

Elm মানকে আবার JSON এ এনকোড করতে, Json.Encode মডিউল ব্যবহার করুন।

import Json.Encode exposing (object, int, string)

encodeUserProfile : UserProfile -> String
encodeUserProfile userProfile =
    object
        [ ("id", int userProfile.id)
        , ("name", string userProfile.name)
        , ("email", string userProfile.email)
        ]
        |> Json.Encode.encode 0

{- 
ব্যবহার:
encodeUserProfile { id = 1, name = "John Doe", email = "[email protected]" }

নমুনা আউটপুট:
"{"id":1,"name":"John Doe","email":"[email protected]"}"
-}

তৃতীয়-পক্ষের লাইব্রেরি

elm-json-decode-pipeline এর মতো Elm প্যাকেজগুলি পাইপলাইন স্টাইল ব্যবহার করে ডিকোডার তৈরি করতে সহজ করে, যা জটিল অবজেক্ট ডিকোড করার সময় বিশেষ করে সুবিধাজনক।

প্রথমে, আপনার প্রজেক্টে লাইব্রেরিটি যোগ করুন:

elm install NoRedInk/elm-json-decode-pipeline

তারপর, আপনি ডিকোডার ডেফিনেশনটি নিম্নরূপ সহজ করতে পারবেন:

import Json.Decode exposing (int, string, succeed)
import Json.Decode.Pipeline exposing (required, decode)

userProfileDecoder : Decoder UserProfile
userProfileDecoder =
    decode UserProfile
        |> required "id" int
        |> required "name" string
        |> required "email" string

{- আগের মতো decodeString ব্যবহার করে JSON স্ট্রিংগুলি ডিকোড করার জন্য এই ডিকোডার ব্যবহার করুন। -}

এই পদ্ধতিটি ডিকোডারটিকে সহজ করে, কোডটিকে আরও পরিষ্কার এবং বজায় রাখার জন্য সুবিধাজনক করে, বিশেষ করে যখন ডেটা কাঠামোগুলি জটিল হয়ে ওঠে।