জ্যাকসন বনাম গসন [বন্ধ]


363

জেএসএনের জন্য বিদ্যমান কয়েকটি গ্রন্থাগার অনুসন্ধানের পরে অবশেষে আমি এই দুটি দিয়ে শেষ করেছি:

  • জ্যাকসন
  • গুগল জিএসন

আমি জিএসএন-এর দিকে কিছুটা আংশিক, তবে নেটটিতে কথাটি হ'ল জিসন একটি নির্দিষ্ট আকাশের পারফরম্যান্স ইস্যুতে ভুগছেন (সেপ্টেম্বর ২০০৯ হিসাবে)।

আমি আমার তুলনা চালিয়ে যাচ্ছি; এর মধ্যে, আমি আমার মন তৈরি করতে সাহায্যের সন্ধান করছি।


3
: এছাড়াও, অ্যান্ড্রয়েড ব্যবহারের জন্য, সর্বশেষ কর্মক্ষমতা মাত্রাবিশিষ্ট আমি দেখেছি এই হল martinadamek.com/2011/02/04/...
StaxMan


7
একটি তাত্ক্ষণিক দ্রষ্টব্য: জিএসন বেছে নেওয়া যে কোনও ব্যক্তির ২.১ ব্যবহার করা উচিত তা নিশ্চিত করা উচিত - শেষ পর্যন্ত এর সংস্করণগুলির তুলনায় এর কার্য সম্পাদন পরিমাপযোগ্যভাবে আরও ভাল।
স্টেক্সম্যান 21

46
এখন পর্যন্ত 74৪ টি আপ-ভোট সহ, এই প্রশ্নের স্পষ্টতই কিছু মূল্যবান উত্তর রয়েছে। ভাল উত্তর ট্রাম্প "গঠনমূলক নয়" প্রশ্ন। পুনরায় খুলতে ভোট।
নিকোলাস

1
জ্যাকসনের নথি এখন হাস্যকর জটিল হয়ে উঠছে getting । ।
dongshengcn

উত্তর:


117

আমি গত সপ্তাহে এই গবেষণাটি করেছি এবং আমি একই 2 টি গ্রন্থাগার দিয়ে শেষ করেছি। যেহেতু আমি স্প্রিং 3 ব্যবহার করছি (এটি তার ডিফল্ট জসন ভিউ জ্যাকসন জসনভিউতে জ্যাকসনকে গ্রহণ করে ) এটি করা আমার পক্ষে আরও স্বাভাবিক ছিল। 2 লিবিবটি প্রায় একই রকম ... শেষে তারা কেবল একটি জসন ফাইলে ম্যাপ করে! :)

যাইহোক আপনি যেমন বলেছেন যে জ্যাকসনের একটি পারফরম্যান্স রয়েছে এবং এটি আমার পক্ষে খুব গুরুত্বপূর্ণ। প্রকল্পটিও বেশ সক্রিয় যেমন আপনি তাদের ওয়েব পৃষ্ঠা থেকে দেখতে পাচ্ছেন এবং এটি একটি খুব ভাল চিহ্ন।


2
এছাড়াও, গুগল জিসন এখনও বিজ্ঞপ্তি রেফারেন্স সমর্থন করে না। জ্যাকসন কি তাদের পরিচালনা করে?
গাইডো

1
বিজ্ঞপ্তি রেফারেন্স সমর্থন ... এটি একটি প্রাথমিক বৈশিষ্ট্য হওয়া উচিত তবে আমি নিশ্চিত নই যে এটি তাদের সমর্থন করে কিনা, আমি এখনও অবধি কোনও বিজ্ঞপ্তি রেফারেন্সের মুখোমুখি হইনি (যদিও তারা বেশ সাধারণ হওয়া উচিত বলে আমি মনে করি বিশেষত মডেলটিতে) । এখানে আরও একটি মানদণ্ড যা জিএসনের সাথে তুলনা করা হলে জ্যাকসন কত দ্রুত তা হাইলাইট করতে পারে। সিরিয়ালাইজেশন / ডেসারিয়ালাইজেশন
কোড.

1
জ্যাকসন বর্তমানে বিজ্ঞপ্তি রেফারেন্স পরিচালনা করে না। যদি এটি গুরুত্বপূর্ণ হয়, এক্সস্ট্রিম করে; কোনও নেটিভ জসন প্যাকেজটি নিশ্চিত কিনা তা নিশ্চিত না (সম্ভবত ফ্লেক্স-
জসন

11
সংস্করণ 1.6 হিসাবে, জ্যাকসন বিজ্ঞপ্তি সংক্রান্ত রেফারেন্সগুলিকে সমর্থন করে। রেফারেন্সের জন্য ঘোষণামূলক পদ্ধতি ব্যবহার করে দ্বি-নির্দেশমূলক রেফারেন্সগুলি পরিচালনা করুন দেখুন ।
ওফির র‌্যাডনিতজ

জ্যাকসনের আরও সুরক্ষা ইস্যু রয়েছে, সুরক্ষার প্রতিশ্রুতি দিয়েছিলেন
টুগোর্ডোবেলো

83

জ্যাকসন এবং গসন হ'ল আসল ডেটা বাঁধাই সহায়তা সম্পর্কিত সর্বাধিক সম্পূর্ণ জাভা জেএসএন প্যাকেজ; অন্যান্য অনেক প্যাকেজ কেবল আদিম মানচিত্র / তালিকা (বা সমতুল্য গাছের মডেল) বন্ডিং সরবরাহ করে। উভয় জেনেরিক ধরণের জন্য সম্পূর্ণ সমর্থন আছে, পাশাপাশি অনেকগুলি সাধারণ ব্যবহারের ক্ষেত্রে যথেষ্ট কনফিগারেশনের ility

যেহেতু আমি জ্যাকসনের সাথে বেশি পরিচিত, এখানে এমন কিছু দিক রয়েছে যেখানে আমি মনে করি জ্যাকসনের জিসনের চেয়ে আরও সম্পূর্ণ সমর্থন রয়েছে (আমি যদি কোনও গসন বৈশিষ্ট্য মিস করি তবে দুঃখিত):

  • বিস্তৃত টীকা সমর্থন; সম্পূর্ণ উত্তরাধিকার, এবং উন্নত "মিক্স-ইন" টিকা সহ (যেখানে আপনি সরাসরি এগুলিকে যুক্ত করতে পারবেন না এমন ক্ষেত্রে ক্লাসের সাথে টীকা যুক্ত করুন)
  • স্ট্রিমিং (বর্ধমান) পড়া, লিখন, অতি-উচ্চ কার্যকারিতা (বা মেমরি-সীমাবদ্ধ) ব্যবহারের ক্ষেত্রে; ডেটা বাইন্ডিংয়ের সাথে মিশ্রিত করতে পারেন (উপ-গাছগুলি আবদ্ধ করুন) - সম্পাদনা করুন : গসনের সর্বশেষ সংস্করণগুলিতে স্ট্রিমিং রিডারও রয়েছে
  • গাছের মডেল (ডিওএম-এর মতো অ্যাক্সেস); বিভিন্ন মডেলের মধ্যে রূপান্তর করতে পারে (গাছ <-> জাভা অবজেক্ট <-> স্ট্রিম)
  • কেবলমাত্র ডিফল্ট কনস্ট্রাক্টর নয়, যেকোন কনস্ট্রাক্টর (বা স্থিতিশীল কারখানার পদ্ধতি) ব্যবহার করতে পারেন
  • ফিল্ড এবং গিটার / সেটার অ্যাক্সেস (পূর্ববর্তী জিএসএন সংস্করণগুলি কেবল ক্ষেত্রগুলি ব্যবহার করে, এটি পরিবর্তিত হতে পারে)
  • আউট অফ-বক্স জ্যাক্স-আরএস সমর্থন
  • আন্তঃক্রিয়াশীলতা: জ্যাকএক্সবি টীকাগুলিও ব্যবহার করতে পারে, সাধারণ প্যাকেজগুলির জন্য সমর্থন / কাজের আশপাশ রয়েছে (জোদা, ইব্যাটিস, সিজিবিব), জেভিএম ভাষা (গ্রোভি, ক্লোজার, স্কালা)
  • আউটপুট জন্য স্থির (ঘোষিত) টাইপ হ্যান্ডলিং জোর করার ক্ষমতা
  • পলিমারফিক জাতীয় ধরণের (জ্যাকসন 1.5) ডিসরিয়ালাইজ করার জন্য সমর্থন - ক্রমিকায়িত করতে পারে এবং তালিকার মতো জিনিসগুলি সঠিকভাবে (অতিরিক্ত প্রকারের তথ্যের সাথে) ডিসরিয়ালাইজ করতে পারে
  • বাইনারি সামগ্রীর জন্য একীভূত সমর্থন (বেস 64 থেকে / জেএসএন স্ট্রিংগুলি থেকে)

6
প্রকৃতপক্ষে, এই পোস্টটি - cowtowncoder.com/blog/archives/2010/11/entry_434.html - অন্যান্য প্যাকেজগুলিতে পাওয়া যায় না এমন অনেক জ্যাকসন বৈশিষ্ট্যের সংক্ষিপ্তসার জানিয়েছে
স্টেক্সম্যান

12
আমি টীকাগুলি জিএসওএন এর বৈশিষ্ট্য হিসাবে বিবেচনা করব না, কোনও ঘাটতি নয় (যা আপনি কমপক্ষে 3 বার উপরে তালিকাভুক্ত করেছেন)।
অরবফিশ

6
জ্যাকসন বা জিসন উভয়েরই জন্য টীকা ব্যবহারের প্রয়োজন নেই। তবে বিকল্প হিসাবে টীকাগুলি থাকা আমার মতামতের একটি মূল্যবান বৈশিষ্ট্য (উদাহরণস্বরূপ "" মিক্স-ইন টিকা "যা বাহ্যিক কনফিগারেশনকে যুক্ত করার জন্য অতিরিক্ত প্রক্রিয়াজাতকরণ বিকল্প)।
স্টেক্সম্যান

3
গসন আপনাকে ডিফল্ট কনস্ট্রাক্টর ব্যবহার না করে উদাহরণ তৈরির বিকল্প উপায় নির্দিষ্ট করার জন্য ইনস্ট্যান্সক্রিটরের নিবন্ধকরণ করতে দেয়।
ইন্দর

37

গসন ১.6-এ এখন একটি নিম্ন-স্তরের স্ট্রিমিং এপিআই এবং একটি নতুন পার্সার রয়েছে যা জ্যাকসনের চেয়ে আসলে দ্রুত।


আমি এমন একটি পরিমাপ দেখে আগ্রহী যা এটিকে সমর্থন করে। কমপক্ষে পরিমাপ: wiki.fasterxML.com/JacksonInFiveMinutes এখনও নির্দেশ করে যে GSON অন্যান্য জাভা জসন প্যাকেজগুলির সাথে প্রতিযোগিতামূলক নয়।
স্টেক্সম্যান

1
আমাদের কাছে মাইক্রো-বেঞ্চমার্কগুলি উপলব্ধ রয়েছে (ট্রাঙ্ক / মেট্রিক্স ডিরেক্টরিতে গসন সাবভার্সন রিপোজিটরিতে চেক করা হয়েছে) যা দেখায় যে সরল অবজেক্ট রূপান্তরালে, নিম্ন-স্তরের স্ট্রিমিং এপিআই 10x পর্যন্ত দ্রুততর হতে পারে। এছাড়াও অন্যান্য মানদণ্ড রয়েছে (যা প্রকাশের জন্য আমাকে মূল লেখককে উত্সাহিত করা দরকার) যে এই নিম্ন স্তরের এপিআই বর্তমানে জ্যাকসন সহ অন্যান্য গ্রন্থাগারগুলিকে মারছে। তবে, বিস্তৃত ও প্রতিনিধি মানদণ্ড তৈরি করতে কিছুটা সময় এবং প্রচেষ্টা লাগবে।
ইন্দির

3
আরও একটি ডেটা পয়েন্ট: jvm- সিরিয়ালাইজার ( github.com/eishay/jvm-serializer ) এখন "জিএসএন / ম্যানুয়াল" পরীক্ষা আছে যা ডাটা বাইন্ডিংয়ের বিকল্প হিসাবে জিএসএন স্ট্রিমিং এপিআই ব্যবহার করে। লেখক একবার 'অফিসিয়াল' সংখ্যা চালালে উইকি আপডেট করা যায়। তবে স্থানীয়ভাবে এটি চালানো থেকে, আমি মনে করি না এটি সুপার দ্রুত হওয়ার বক্তব্যকে সমর্থন করে।
স্টেক্সম্যান

12
(উপরেও যোগ করুন: অফিসিয়াল নম্বরগুলি অন্তর্ভুক্ত করা হয়েছিল - স্ট্রিমিং ম্যান 'ডেটাবাইন্ডিংয়ের চেয়ে দ্রুত, তবে জ্যাকসনের পারফরম্যান্সের স্তরের চেয়ে বেশি নয়)
স্টেক্সম্যান

9
... যে কারও অনুসরণ করছেন, গসন ২.১ অবশেষে উল্লেখযোগ্য এবং পরিমাপযোগ্য পারফরম্যান্সের উন্নতি নিয়ে এসেছিল।
স্টেক্সম্যান

13

ইতিমধ্যে উপরে দেওয়া অন্যান্য উত্তরগুলিতে যুক্ত করা। যদি আপনার ক্ষেত্রে কেস সংবেদনশীলতা কোনও গুরুত্ব থাকে তবে জ্যাকসন ব্যবহার করুন। গসন মূল নামগুলির ক্ষেত্রে সংবেদনশীলতা সমর্থন করে না, যখন জ্যাকসন তা করে।

এখানে দুটি সম্পর্কিত লিঙ্ক আছে

(না) কেসনে কেস সংবেদনশীলতা সমর্থন: জিএসওএন: জসন থেকে কোনও মামলা সংবেদনশীল উপাদান কীভাবে পাবেন?

জ্যাকসন https://gist.github.com/electrum/1260489 এ কেস সংবেদনশীলতা সমর্থন


জ্যাকসনে কেস সংবেদনশীলতার জন্য স্নিপেট কাজ করে না । বা বরং, এটি কেবলমাত্র শীর্ষ-স্তরের বৈশিষ্ট্যের জন্য কাজ করে। কোনও সম্পত্তি বাসা বাঁধার চেষ্টা করুন এবং আপনি দেখতে পাবেন যে আপনার সমাধান কাজ করে না।
আন্দ্রেস এফ।

1
প্রকৃতপক্ষে কেস-সংবেদনশীল বৈশিষ্ট্যগুলির জন্য আনুষ্ঠানিক সমর্থন রয়েছে, MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIESজ্যাকসন ২.৩-এ যোগ করা হয়েছে। সুতরাং এর জন্য কাস্টম কোড যুক্ত করার দরকার নেই।
স্টেক্সম্যান 1

6

দেখে মনে হচ্ছে জিএসন জ্যাকএক্সবি সমর্থন করে না। জেএসএন বার্তা তৈরি করতে বা প্রক্রিয়া করার জন্য জ্যাকএক্সবি টীকাযুক্ত ক্লাস ব্যবহার করে, আমি স্প্রিং এমভিসি ব্যবহার করে রেস্টফল ওয়েব সার্ভিস ইন্টারফেস তৈরি করতে একই শ্রেণিটি ভাগ করতে পারি।


হাইবারনেটের জন্য যদি আপনার ডেটা ক্লাসে ইতিমধ্যে টিকা আছে তবে আপনি JAXB এর জন্য আর কোনও সেট চাইবেন না।
অরবফিশ

1
"বিদেশী" টীকাগুলির জন্য সমর্থন যোগ করতে সক্ষম হওয়ায় এটি দুর্দান্ত। জ্যাকসনের Jচ্ছিক জ্যাকএক্সবি টীকা সংক্রান্ত মডিউল রয়েছে, পাশাপাশি কয়েকটি অ্যানোটেশনগুলির জন্য হাইবারনেট মডিউল রয়েছে (ট্রানজিডির জন্য, অলস লোডিংয়ের জন্য)। মডিউলার এক্সটেনশনের পাশাপাশি অনুমতি দিতে গসনকে বাড়ানো যেতে পারে।
স্ট্যাক্সম্যান

2
বিশেষত জ্যাকএক্সবি যেমন একটি মান!
ম্যাক্সেক্সিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.