json validator




जेएसओएन क्या है और मैं इसका उपयोग क्यों करूं? (11)

मैंने विकिपीडिया पर देखा है और इसे गुगल किया है और आधिकारिक दस्तावेज पढ़ा है, लेकिन मुझे अभी भी उस बिंदु पर नहीं मिला है जहां मैं वास्तव में समझता हूं कि जेएसओएन क्या है, और मैं इसका उपयोग क्यों करूंगा।

मैं थोड़ी देर के लिए PHP, MySQL और जावास्क्रिप्ट / एचटीएमएल का उपयोग कर अनुप्रयोगों का निर्माण कर रहा हूं, और यदि JSON मेरे जीवन को आसान बनाने या मेरे कोड को बेहतर बनाने या मेरे उपयोगकर्ता इंटरफ़ेस को बेहतर बनाने के लिए कुछ कर सकता है, तो मैं इसके बारे में जानना चाहता हूं। क्या कोई मुझे एक संक्षिप्त स्पष्टीकरण दे सकता है?


JSON (जावास्क्रिप्ट ऑब्जेक्ट नोटेशन) डेटा एक्सचेंज / ट्रांसफर के लिए एक हल्का वजन डेटा प्रारूप है। जावास्क्रिप्ट के रूप में इसकी महत्वपूर्ण मूल्य जोड़ी में है। आरईएसटी एपीआई के लिए सर्वर से क्लाइंट में डेटा ट्रांसफर के लिए इसका व्यापक रूप से उपयोग किया जाता है। आजकल कई सोशल मीडिया साइटें इसका उपयोग कर रही हैं। हालांकि मैं इसे डेटा प्रकारों के संबंध में एक्सएमएल के रूप में मजबूत नहीं देखता हूं। एक्सएमएल में बहुत समृद्ध डेटाटाइप और एक्सएसडी है। इस में जेएसओएन की कमी है।

स्ट्रिंग डेटा की एक ही मात्रा के लिए जेएसओएन एक्सएमएल की तुलना में हल्का होगा क्योंकि एक्सएमएल में खुले और बंद टैग, आदि हैं ...


अपने PHP जेसन प्रतिक्रिया को पार्स करने के लिए निम्न कोड आज़माएं: read.php

<script
  src="https://code.jquery.com/jquery-3.2.1.min.js"
  integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
  crossorigin="anonymous"></script>
<script type="text/javascript">  
$.ajax({
    url:'index.php',
    data:{},
    type:"POST",
    success:function(result) {
        jsondecoded = $.parseJSON(result);
        $.each(jsondecoded, function(index, value) {
            $("#servers").text($("#servers").text() + " " + value.servername);
            console.log(value.start);
            console.log(value.end);
            console.log(value.id);
        });
    },
    statusCode: {
    404: function() {
      alert( "page not found" );
    }
  }
});
</script>

server.php

<?php 
echo '[{"start":"2017-08-29","end":"2017-09-01","id":"22"},{"start":"2017-09-03","end":"2017-09-06","id":"23"}]';
?>

कभी-कभी तकनीकीता दी जाती है जहां कोई भी आवश्यक नहीं होता है, और जब शीर्ष वोट वाले कई उत्तर सटीक तकनीकी और विशिष्ट होते हैं, तो मुझे व्यक्तिगत रूप से नहीं लगता कि वे समझने के लिए और अधिक आसान हैं, या विकिपीडिया पर क्या पाया जा सकता है, या संक्षेप में आधिकारिक दस्तावेज।

जिस तरह से मुझे जेएसओएन के बारे में सोचना पसंद है वही है - यह अलग-अलग भाषाओं की दुनिया में एक भाषा है। हालांकि, जेएसओएन और अन्य भाषाओं के बीच का अंतर यह है कि "हर कोई" जेएसओएन को "मूल भाषा" के साथ "बोलता है"।

असली दुनिया के उदाहरण का उपयोग करते हुए, आइए दिखाएं कि हमारे पास तीन लोग हैं। एक व्यक्ति इग्बो को अपनी मातृभाषा के रूप में बोलता है। दूसरा व्यक्ति पहले व्यक्ति से बातचीत करना चाहेगा, हालांकि, पहला व्यक्ति योरूबा को अपनी पहली भाषा के रूप में बोलता है।

हम क्या कर सकते है?

शुक्र है, हमारे उदाहरण में तीसरा व्यक्ति अंग्रेजी बोलने में बड़ा हुआ, लेकिन दूसरी भाषा के रूप में इग्बो और योरूबा दोनों बोलने के लिए भी होता है, और इसलिए पहले दो व्यक्तियों के बीच मध्यस्थ के रूप में कार्य कर सकता है।

प्रोग्रामिंग दुनिया में, पहला "व्यक्ति" पायथन है, दूसरा "व्यक्ति" रूबी है, और तीसरा "व्यक्ति" जेएसओएन है, जो रूबी को पाइथन में "अनुवाद" करने में सक्षम होने के बावजूद होता है और इसके विपरीत! अब स्पष्ट रूप से यह समानता एक आदर्श नहीं है, लेकिन, जो द्विभाषी है, मुझे विश्वास है कि यह देखने का एक आसान तरीका है कि जेएसओएन अन्य प्रोग्रामिंग भाषाओं के साथ कैसे इंटरैक्ट करता है।


जेएसओएन और पारंपरिक वाक्यविन्यास के बीच का अंतर निम्नानुसार होगा (जावास्क्रिप्ट में)

परम्परागत

 function Employee(name, Id, Phone, email){

      this.name = name;
      this.Id = Id;
      this.Phone = Phone;
      this.email = email;
  }

  //access or call it as 

var Emp = new Employee("mike","123","9373849784","[email protected]");

JSON के साथ

अगर हम JSON का उपयोग करते हैं तो हम अलग-अलग तरीके से परिभाषित कर सकते हैं

  function Employee(args){

   this.name = args.name;
   this.Id = args.Id;
   this.Phone = args.Phone;
   this.email = args.email;
}

//now access this as...

var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'[email protected]'});

हमें याद रखना महत्वपूर्ण बात यह है कि, अगर हमें "कर्मचारी" वर्ग या जेएसओएन विधि के बिना 100 तत्वों के साथ मोडल बनाना है, तो हमें कक्षा बनाने के दौरान सब कुछ पर्स करना होगा। लेकिन जेएसओएन के साथ हम वस्तुओं को केवल इनलाइन परिभाषित कर सकते हैं जब कक्षा के लिए एक नई वस्तु परिभाषित की जाती है।

इसलिए नीचे दी गई रेखा JSON के साथ चीजों को करने का तरीका है (चीजों को परिभाषित करने का एक आसान तरीका)

 var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'[email protected]'});

जेएसओएन जावास्क्रिप्ट ऑब्जेक्ट नोटेशन है। एक्सएमएल की तुलना में नेटवर्क कनेक्शन में डेटा के सेट ट्रांसमिट करने का यह एक बहुत ही कॉम्पैक्ट तरीका है। मेरा सुझाव है कि JSON किसी भी AJAX- जैसे अनुप्रयोगों में उपयोग किया जाए जहां एक्सएमएल अन्यथा "अनुशंसित" विकल्प होगा। एक्सएमएल की वर्बोजिटी डाउनलोड समय और बढ़ी बैंडविड्थ खपत ($$$) में जोड़ जाएगी। आप जेएसओएन के साथ एक ही प्रभाव को पूरा कर सकते हैं और इसकी मार्क-अप लगभग पूरी तरह से डेटा को समर्पित है, न कि अंतर्निहित संरचना।


जेएसओएन प्रारूप अक्सर नेटवर्क कनेक्शन पर संरचित डेटा को क्रमबद्ध करने और प्रसारित करने के लिए उपयोग किया जाता है। इसका उपयोग मुख्य रूप से सर्वर और वेब अनुप्रयोग के बीच डेटा संचारित करने के लिए किया जाता है, जो एक्सएमएल के विकल्प के रूप में कार्य करता है।


संक्षेप में - जेएसओएन इस तरह से क्रमबद्ध करने का एक तरीका है, यह जावास्क्रिप्ट कोड बन जाता है। निष्पादित (eval या अन्यथा के साथ), यह कोड एक जावास्क्रिप्ट ऑब्जेक्ट बनाता है और देता है जिसमें आपके द्वारा क्रमबद्ध डेटा शामिल होता है। यह उपलब्ध है क्योंकि जावास्क्रिप्ट निम्नलिखित वाक्यविन्यास की अनुमति देता है:

var MyArray = [ 1, 2, 3, 4]; // MyArray is now an array with 4 elements
var MyObject = {
    'StringProperty' : 'Value',
    'IntProperty' : 12,
    'ArrayProperty' : [ 1, 2, 3],
    'ObjectProperty' : { 'SubObjectProperty': 'SomeValue' }
}; // MyObject is now an object with property values set.

आप इसे कई उद्देश्यों के लिए उपयोग कर सकते हैं। एक के लिए, यह आपके सर्वर बैकएंड से डेटा को आपके जावास्क्रिप्ट कोड पर पास करने का एक आरामदायक तरीका है। इस प्रकार, यह अक्सर AJAX में प्रयोग किया जाता है।

आप इसे एक स्टैंडअलोन सीरियलाइजेशन तंत्र के रूप में भी उपयोग कर सकते हैं, जो कि सरल है और एक्सएमएल की तुलना में कम जगह लेता है। कई पुस्तकालय मौजूद हैं जो आपको विभिन्न प्रोग्रामिंग भाषाओं के लिए JSON में ऑब्जेक्ट्स को क्रमबद्ध और deserialize करने की अनुमति देते हैं।


संक्षेप में, यह डेटा पास करने के लिए एक स्क्रिप्टिंग नोटेशन है। कुछ तरीकों से एक्सएमएल का एक विकल्प, मूल रूप से बुनियादी डेटा प्रकारों, सरणी और सहयोगी सरणी का समर्थन करता है (नाम-मूल्य जोड़े, जिसे ऑब्जेक्ट कहा जाता है क्योंकि वे यही दर्शाते हैं)।

वाक्यविन्यास यह है कि जावास्क्रिप्ट और JSON में उपयोग किया जाता है, "जावास्क्रिप्ट ऑब्जेक्ट नोटेशन" के लिए खड़ा है। हालांकि यह पोर्टेबल बन गया है और अन्य भाषाओं में भी इसका उपयोग किया जाता है।

विस्तार के लिए एक उपयोगी लिंक यहां है:

http://secretgeek.net/json_3mins.asp


हमें कॉलेज पर एक परियोजना करना है और हमें एक बड़ी समस्या का सामना करना पड़ा, इसे उसी मूल नीति कहा जाता है। अन्य चीजों को आम करें, यह बनाता है कि जावास्क्रिप्ट से आपकी XMLHttpRequest विधि आपकी साइट पर मौजूद डोमेन के अलावा डोमेन के लिए अनुरोध नहीं कर सकती है।

उदाहरण के लिए यदि आप www.example.com पर हैं तो आप www.otherexample.com पर अनुरोध नहीं कर सकते हैं। JSONRequest इसकी अनुमति देता है, लेकिन यदि आप उस साइट को अनुमति देते हैं तो आपको JSON प्रारूप में परिणाम मिलेगा (उदाहरण के लिए इसमें एक वेब सेवा है जो JSON में संदेश लौटाती है)। यह एक समस्या है जहां आप शायद JSON का उपयोग कर सकते हैं।

यहां कुछ व्यावहारिक है: याहू JSON


JSON (जावास्क्रिप्ट ऑब्जेक्ट नोटेशन) एक हल्का प्रारूप है जिसका उपयोग डेटा इंटरचेंजिंग के लिए किया जाता है। यह जावास्क्रिप्ट भाषा के उप-समूह पर आधारित है (जिस तरह ऑब्जेक्ट जावास्क्रिप्ट में बनाया गया है)। जैसा कि एमडीएन में बताया गया है , कुछ जावास्क्रिप्ट JSON नहीं है, और कुछ JSON जावास्क्रिप्ट नहीं है।

इसका उपयोग करने का एक उदाहरण वेब सेवाओं के जवाब है। 'पुराने' दिनों में, वेब सेवाओं ने डेटा को वापस प्रसारित करने के लिए एक्सएमएल का प्राथमिक डेटा प्रारूप के रूप में उपयोग किया, लेकिन चूंकि जेएसओएन दिखाई दिया ( जेएसओएन प्रारूप आरएफसी 4627 में डगलस क्रॉकफोर्ड द्वारा निर्दिष्ट है ), यह पसंदीदा प्रारूप रहा है क्योंकि यह बहुत अधिक है हल्के

आप आधिकारिक JSON वेबसाइट पर बहुत अधिक जानकारी प्राप्त कर सकते हैं।

जेएसओएन दो संरचनाओं पर बनाया गया है:

  • नाम / मूल्य जोड़े का संग्रह। विभिन्न भाषाओं में, यह एक वस्तु, रिकॉर्ड, संरचना, शब्दकोश, हैश तालिका, कुंजी सूची, या सहयोगी सरणी के रूप में महसूस किया जाता है।
  • मूल्यों की एक आदेशित सूची। अधिकांश भाषाओं में, यह एक सरणी, वेक्टर, सूची, या अनुक्रम के रूप में महसूस किया जाता है।

जेएसओएन संरचना













JSON डेटा का एक उदाहरण यहां दिया गया है:

{
     "firstName": "John",
     "lastName": "Smith",
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": 10021
     },
     "phoneNumbers": [
         "212 555-1234",
         "646 555-4567"
     ]
 }

जावास्क्रिप्ट में JSON

JSON (जावास्क्रिप्ट में) एक स्ट्रिंग है!

लोग अक्सर मानते हैं कि सभी जावास्क्रिप्ट ऑब्जेक्ट JSON हैं और JSON एक जावास्क्रिप्ट ऑब्जेक्ट है। यह गलत है।

जावास्क्रिप्ट में var x = {x:y} JSON नहीं है , यह एक जावास्क्रिप्ट ऑब्जेक्ट है । दोनों एक ही बात नहीं हैं। JSON समकक्ष (जावास्क्रिप्ट भाषा में प्रतिनिधित्व) var x = '{"x":"y"}'x टाइप स्ट्रिंग का एक ऑब्जेक्ट है जो किसी ऑब्जेक्ट में अपने ऑब्जेक्ट में नहीं है। इसे पूरी तरह से विकसित जावास्क्रिप्ट ऑब्जेक्ट में बदलने के लिए आपको पहले इसे पार्स करना होगा, var x = JSON.parse('{"x":"y"}'); , x अब एक वस्तु है लेकिन यह अब JSON नहीं है।

जावास्क्रिप्ट ऑब्जेक्ट बनाम जेएसओएन देखें

जेएसओएन और जावास्क्रिप्ट के साथ काम करते समय, आप कॉलबैक में दिए गए परिणाम का मूल्यांकन करने के लिए eval फ़ंक्शन का उपयोग करने के लिए eval हो सकते हैं, लेकिन यह सुझाव नहीं दिया जाता है क्योंकि JSON में मान्य दो वर्ण (यू + 2028 और यू + 2029) हैं लेकिन इन में नहीं जावास्क्रिप्ट ( here अधिक पढ़ें)।

इसलिए, किसी को हमेशा क्रॉकफ़ोर्ड की स्क्रिप्ट का उपयोग करने का प्रयास करना चाहिए जो मूल्यांकन करने से पहले वैध JSON की जांच करता है। स्क्रिप्ट स्पष्टीकरण से लिंक here पाया गया here और यहां जेएस फ़ाइल का सीधा लिंक है। आज के हर प्रमुख ब्राउज़र के लिए इसका अपना कार्यान्वयन है।

JSON पार्सर का उपयोग कैसे करें (उपरोक्त कोड स्निपेट से जेसन के साथ) पर उदाहरण:

//The callback function that will be executed once data is received from the server
var callback = function (result) {
    var johnny = JSON.parse(result);
    //Now, the variable 'johnny' is an object that contains all of the properties 
    //from the above code snippet (the json example)
    alert(johnny.firstName + ' ' + johnny.lastName); //Will alert 'John Smith'
};

JSON पार्सर भी एक और बहुत उपयोगी विधि प्रदान करता है, stringify । यह विधि जावास्क्रिप्ट ऑब्जेक्ट को पैरामीटर के रूप में स्वीकार करती है, और जेएसओएन प्रारूप के साथ एक स्ट्रिंग को आउटपुट करता है। यह तब उपयोगी होता है जब आप सर्वर पर डेटा वापस भेजना चाहते हैं :

var anObject = {name: "Andreas", surname : "Grech", age : 20};
var jsonFormat = JSON.stringify(anObject);
//The above method will output this: {"name":"Andreas","surname":"Grech","age":20}

उपर्युक्त दो विधियां ( parse और stringify ) एक दूसरा पैरामीटर भी लेती हैं, जो कि एक फ़ंक्शन है जिसे अंतिम परिणाम के प्रत्येक स्तर पर प्रत्येक कुंजी और मान के लिए बुलाया जाएगा, और प्रत्येक मान आपके इनपुट किए गए फ़ंक्शन के परिणामस्वरूप बदल दिया जाएगा। ( here इस पर अधिक)

बीटीडब्ल्यू, आप सभी के लिए जो सोचते हैं कि जेएसओएन सिर्फ जावास्क्रिप्ट के लिए है, इस पोस्ट को देखें जो अन्यथा बताता है और पुष्टि करता है।

संदर्भ


मुझे जेएसओएन मुख्य रूप से पसंद है क्योंकि यह बहुत छोटा है । वेब सामग्री के लिए जिसे gzipped किया जा सकता है, यह आवश्यक रूप से एक बड़ा सौदा नहीं है (इसलिए एक्स एचटीएमएल इतना लोकप्रिय क्यों है)। लेकिन ऐसे अवसर हैं जहां यह फायदेमंद हो सकता है।

उदाहरण के लिए, एक प्रोजेक्ट के लिए मैं सूचना संचारित कर रहा था जिसे क्रमबद्ध करने और XMPP माध्यम से प्रेषित करने की आवश्यकता थी। चूंकि अधिकांश सर्वर एक संदेश में प्रेषित डेटा की मात्रा को सीमित कर देंगे, इसलिए मुझे स्पष्ट विकल्प, एक्सएमएल पर जेएसओएन का उपयोग करने में मदद मिली।

एक अतिरिक्त बोनस के रूप में, यदि आप पाइथन या जावास्क्रिप्ट से परिचित हैं, तो आप पहले से ही जेएसओएन को बहुत ज्यादा जानते हैं और बिना किसी प्रशिक्षण के इसे समझ सकते हैं।





json