कैसे चेक करें कि अगर json ऑब्जेक्ट खाली है


जवाब 1:

सबसे तेज और सरल तरीका:

फ़ंक्शन हैइमपेट (obj) { के लिए (obj में var प्रोप) { विवरण झूठा है; } सच लौटना; }

यहाँ इकाई परीक्षण हैं:

http://code.bocoup.com/isempty-unit/test/

पूर्ण परीक्षण

http://jsperf.com/methods-to-test-empty-objects

EDIT (2013-01-05):

यदि कोई गैर-गणनीय स्वयं के गुण हैं, तो उपरोक्त दृष्टिकोण विफल हो जाएगा:

फ़ंक्शन हैइम्प्टी (obj) { के लिए (obj में var प्रोप) { विवरण झूठा है; } सच लौटना; }// इसके अलावा ...फ़ंक्शन ईएमपीटीबी (ओबीजी) { वापसी Object.keys (obj) .length === 0;}var o = {};Object.defineProperty (ओ, "फू", { मूल्य: "यह गुण प्रगणनीय नहीं है, इसलिए Object.keys () और फॉर-इन मिस हो जाएगा।" enumerable: false });कंसोल.लॉग (isEmptyA (o)); // सचकंसोल.लॉग (isEmptyB (o)); // सच

... लेकिन वस्तु स्पष्ट रूप से खाली नहीं है। Object.getOwnPropertyNames (o) में गैर-गुणकारी गुण शामिल होंगे:

Object.getOwnPropertyNames (ओ);// ["फू"]

जवाब 2:

सबसे आसान सही चीज़ जो मैं सोच सकता हूँ:

var ismmpty = function (obj) { var p; के लिए (obj में पी) { अगर (obj.hasOwnProperty (p)) { विवरण झूठा है; } } सच लौटना;};

लेकिन ऐसा लगता है कि इससे अधिक जटिल तरीका होना चाहिए। मैं भी बिल्कुल निश्चित नहीं हूं कि यह सही है।


जवाब 3:

यदि आप एक दोस्ताना (यानी 8 या कुछ भी सभ्य) वातावरण में हैं, तो बहुत अधिक प्रदर्शन की आवश्यकता नहीं है, तो आप JSON.stringify (obj) === JSON.stringify ({}) भी जा सकते हैं; आप सावधान रहना चाह सकते हैं, हालांकि इस मामले के लिए आपकी वस्तु में एक विधि है।