জেএসওএন-এর ডিসিরিয়ালাইজ এবং সিরিয়ালাইজেশন কী?


137

আমি JSON এর সাথে "deserialize" এবং "সিরিয়ালাইজ" শব্দটি দেখেছি। তাঁরা কি বোঝাতে চাইছেন?


এটা কি তোমার প্রশ্নের উত্তর? সিরিয়ালাইজেশন কী?
কোডফোরস্টার

উত্তর:


229

জেএসএন হ'ল একটি বিন্যাস যা স্ট্রিংয়ে অবজেক্টগুলি এনকোড করে। সিরিয়ালাইজেশন অর্থ কোনও বস্তুকে সেই স্ট্রিংয়ে রূপান্তর করা , এবং ডিসরিয়ালাইজেশন হ'ল তার বিপরীত ক্রিয়াকলাপ (স্ট্রিং -> অবজেক্টে রূপান্তর করা)

ডেটা প্রেরণ করার সময় বা কোনও ফাইলে তাদের সংরক্ষণ করার সময়, ডেটা বাইট স্ট্রিংগুলি করা প্রয়োজন, তবে জটিল অবজেক্টগুলি এই ফর্ম্যাটে খুব কমই হয়। সিরিয়ালাইজেশন এই ধরনের জটিল বস্তুগুলিকে এই জাতীয় ব্যবহারের জন্য বাইট স্ট্রিংগুলিতে রূপান্তর করতে পারে। বাইট স্ট্রিংগুলি সঞ্চারিত হওয়ার পরে, রিসিভারকে বাইট স্ট্রিং থেকে আসল অবজেক্টটি পুনরুদ্ধার করতে হবে। এটি deserialization হিসাবে পরিচিত।

বলুন, আপনার একটি বিষয় রয়েছে:

{foo: [1, 4, 7, 10], bar: "baz"}

জেএসএনে সিরিয়ালাইজ করা এটিকে স্ট্রিংয়ে রূপান্তর করবে:

'{"foo":[1,4,7,10],"bar":"baz"}'

যা স্টোর বা তারের মাধ্যমে যে কোনও জায়গায় প্রেরণ করা যেতে পারে। রিসিভার তারপরে আসল অবজেক্টটি ফিরে পেতে এই স্ট্রিংটিকে ডিসরিয়ালাইজ করতে পারে। {foo: [1, 4, 7, 10], bar: "baz"}


3
@ একনিটিএম - আমি তারের উপর দিয়ে জিনিস পাঠানোর জন্য আমার মাথা গুটিয়ে দেওয়ার চেষ্টা করছি। আমি বাইনারি এনকোডিং ব্যবহার করি বা জসন, এক্সএমএল বা প্রোটো বুফ ব্যবহার করি না কেন - তারের উপরে প্রেরণের আগে ডেটা সর্বদা বাইটে থাকতে হবে। এটা কি সত্যি?
নির্মল

1
@ নির্মল হ্যাঁ ___
কেনেটিএম

1
পার্থক্যটি মনে রাখার জন্য আমি স্মরণীয় যন্ত্রটি ব্যবহার করি এটি হ'ল "সিরিয়ালাইজেশন বস্তুগুলিকে ক্রমিক সংখ্যায় পরিণত করে"
জানাক মীনা

1
সুতরাং কেন আমরা শুধু করব না"{foo: [1, 4, 7, 10], bar: "baz"}"
5:09

2
@ এনারিকোমারিয়াডে অ্যাঞ্জেলিস জেএসএন প্রোপার্টি অবশ্যই উদ্ধৃতিতে থাকতে হবে। এটি একটি প্রয়োজনীয়তা - উইকিতে প্রথম উদাহরণটি দেখুন: en.wikedia.org/wiki/JSON
মেঘ

8

ডেটা স্টোরেজ প্রসঙ্গে সিরিয়ালাইজেশন (বা সিরিয়ালাইজেশন) হ'ল ডেটা স্ট্রাকচার বা অবজেক্ট স্টেটকে এমন বিন্যাসে অনুবাদ করার প্রক্রিয়া যা সংরক্ষণ করা যেতে পারে (উদাহরণস্বরূপ, কোনও ফাইল বা মেমরি বাফারে) বা সংক্রমণিত (উদাহরণস্বরূপ, কোনও নেটওয়ার্ক সংযোগ জুড়ে) লিঙ্ক) এবং পরে পুনর্গঠন। [...]
বিপরীত অপারেশন, ধারাবাহিক বাইট থেকে একটি ডেটা কাঠামো আহরণ করা হয় deserializationউইকিপিডিয়া থেকে

পাইথনে "সিরিয়ালাইজেশন" প্রদত্ত ডেটা স্ট্রাকচারকে (যেমন ক dict) তার বৈধ JSON দুল (অবজেক্ট) এ রূপান্তর করা ছাড়া আর কিছুই করে না ।

  • পাইথন এর TrueJSONs রূপান্তরিত হবে trueএবং অভিধান নিজেই তারপর উদ্ধৃতির মধ্যে encapsulated করা হবে না।
  • আপনি পাইথন অভিধান এবং JSON এর বুলিয়ান মানগুলির দ্বারা সহজেই পার্থক্যটি চিহ্নিত করতে পারেন:
    • পাইথন : True/ False,
    • জেএসএন : true/false
  • পাইথন বিল্টিন মডিউল jsonহ'ল সিরিয়ালাইজেশন করার মানক উপায়:

কোড উদাহরণ:

data = {
    "president": {
        "name": "Zaphod Beeblebrox",
        "species": "Betelgeusian",
        "male": True,
    }
}

import json
json_data = json.dumps(data, indent=2) # serialize
restored_data = json.loads(json_data) # deserialize

# serialized json_data now looks like:
# {
#   "president": {
#     "name": "Zaphod Beeblebrox",
#     "species": "Betelgeusian",
#     "male": true
#   }
# }

সূত্র: রিয়েলপথন ডট কম


-3

পাইথন ব্যবহার করে সিরিয়ালাইজ এবং ডেসরিয়ালাইজ করার ব্যাখ্যা

পাইথনে, আচার মডিউলটি সিরিয়ালাইজেশনের জন্য ব্যবহৃত হয়। সুতরাং, সিরিয়ালাইজেশন প্রক্রিয়াটিকে পাইথনকে পিকিং বলা হয়। পাইথন স্ট্যান্ডার্ড লাইব্রেরিতে এই মডিউলটি উপলব্ধ

আচার ব্যবহার করে সিরিয়ালাইজেশন

import pickle

#the object to serialize
example_dic={1:"6",2:"2",3:"f"}

#where the bytes after serializing end up at, wb stands for write byte
pickle_out=open("dict.pickle","wb")
#Time to dump
pickle.dump(example_dic,pickle_out)
#whatever you open, you must close
pickle_out.close()

PICKLE ফাইল (নোটপ্যাডের মতো কোনও পাঠ্য সম্পাদক দ্বারা খোলা যেতে পারে) এতে (সিরিয়ালযুক্ত ডেটা) রয়েছে:

€} কিউ (KX 6qKX 2qKX fqu।

আচার ব্যবহার করে ডিসিরিয়ালেশন

import pickle

pickle_in=open("dict.pickle","rb")
get_deserialized_data_back=pickle.load(pickle_in)

print(get_deserialized_data_back)

আউটপুট:

{1: '6', 2: '2', 3: 'চ'}


4
ব্যবহারকারী JSON সম্পর্কে আচার না দেওয়ার বিষয়ে জিজ্ঞাসা করেছিলেন, যদিও। এটি কিছুটা অফটোপিক।
smci

এটি আসল প্রশ্ন: জেএসএনে ডিজিটালাইজেশন এবং সিরিয়ালাইজেশন কী? আমি ধারণাটি প্রদর্শনের জন্য পাইথনের আচার মডিউলটি ব্যবহার করেছি। আমি একটি ধারণা ব্যাখ্যা করার জন্য একটি সরঞ্জাম ব্যবহার করেছি। আপনি ধারণাটির চেয়েও বেশি সরঞ্জামটিতে ফোকাস করছেন।
আসিফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.