2012-10-06 18 views
18

बहुत गुस्सा और बालों को खींचने के बावजूद, मैं अपने जीवन के लिए जेसन, ऑब्जेक्ट्स और सरणी (जावास्क्रिप्ट में) के बीच अंतर को व्यक्त नहीं कर सकता। नीचे यह है कि मैं 2-आयामी डेटा कंटेनरों का उपयोग कैसे कर रहा हूं (शब्द "सरणी," "ऑब्जेक्ट" या "जेसन" शब्द का उपयोग करने से डरते हैं)। कृपया मुझे बताएं कि ये दो उदाहरण क्या हैं?जावास्क्रिप्ट ऑब्जेक्ट बनाम एरे बनाम जेएसओएन

//first example: 
[ 
    {"record_id":1,"name":"Frank"}, 
    {"record_id":2,"name":"Sally"} 
] 

//second example: 
{ 
"countries": 
    [ 
    {"id":1,"name":"Canada"}, 
    {"id":2,"name":"Mexico"} 
    ], 
"states": 
    [ 
    "id":1,"name":"Maine"}, 
    {"id":2,"name":"Alaska"} 
    ] 
} 
+0

JSON जेएसओएन के विनिर्देशों की आवश्यकताओं के अनुरूप वर्णों के अनुक्रम में रखे गए यूटीएफ -8 एन्कोडेड टेक्स्ट डेटा है। यह कैसे बनाया गया कोई फर्क नहीं पड़ता। महत्वपूर्ण बात यह है कि आप यूटीएफ -8 डेटा के साथ समाप्त होते हैं। –

+0

@ user1689607 नाइट: [JSON] (http://www.json.org/) * एक * यूटीएफ एन्कोडिंग निर्दिष्ट नहीं करता है (लेकिन यह यूनिकोड को जनादेश देता है) - यूटीएफ-एक्स यह है कि कैसे यूनिकोड को ऑक्टेट्स पर मैप किया जाता है और यह एन्कोडिंग जेएसओएन से स्वतंत्र रूप से होता है। अन्यथा, हाँ: JSON एक * क्रमबद्धता * प्रारूप है। –

+0

* डिफ़ॉल्ट * एन्कोडिंग :-) हालांकि, एक सर्वर उपयुक्त बातचीत/शीर्षलेख के साथ जेएसओएन को यूटीएफ -16 (या यहां तक ​​कि यूसीएस -2 .. शायद?) के रूप में वापस भेज सकता है। –

उत्तर

49

JSON डेटा संरचना का प्रतिनिधित्व है, यह ऑब्जेक्ट या सरणी नहीं है।

[1,2,3] 

एक सरणी है।

{"foo":"bar"} 

एक वस्तु है।

अपने उदाहरण में,

[ 
    {"record_id":1,"name":"Frank"}, 
    {"record_id":2,"name":"Sally"} 
] 

वस्तुओं की एक सरणी है।

{ 
    "countries": 
    [ 
     {"id":1,"name":"Canada"}, 
     {"id":2,"name":"Mexico"} 
    ], 
    "states": 
    [ 
     {"id":1,"name":"Maine"}, 
     {"id":2,"name":"Alaska"} 
    ] 
} 

क्या कोई ऑब्जेक्ट इसके अंदर अन्य सरणी और ऑब्जेक्ट्स रखता है।

+0

धन्यवाद, गैरी। यह अब तक का सबसे स्पष्ट स्पष्टीकरण है। इसकी प्रशंसा करना। – Octavient

0

अच्छी तरह से मेरा मानना ​​है कि ऑब्जेक्ट्स के दौरान ऑब्जेक्ट्स और गुण हो सकते हैं। JSON सर्वर से पारित किया जा सकता है, जबकि सरणी नहीं कर सकते हो, जब तक आप पोस्ट

+0

यह उत्तर भ्रमित हो सकता है। जेएसओएन सरणी को एन्कोड कर सकता है जिसे सर्वर पर पास किया जा सकता है, जैसे JSON ऑब्जेक्ट को एन्कोड कर सकता है जिसे सर्वर पर पास किया जा सकता है। इसके अलावा, जेएसओएन ऑब्जेक्ट्स में विधियां नहीं हो सकतीं, क्योंकि जेएसओएन एक स्क्रिप्टिंग या प्रोग्रामिंग भाषा नहीं है (यह डेटा इंटरचेंज प्रारूप है)। – CristosLC

5

द्वारा एक स्ट्रिंग के रूप में यह पारित तुम एक वस्तु शाब्दिक घोषित करने के लिए { ब्रेसिज़ } का उपयोग करें।

आप एक शाब्दिक शृंखला घोषित करने के लिए [ वर्ग कोष्ठक ] का उपयोग करें।

ऑब्जेक्ट्स कुंजी नाम मूल्य जोड़े का संग्रह हैं।

यहाँ तार की एक सरणी का एक उदाहरण है:

var a = [ "one", "two", "three" ]; 

यहाँ एक सरल उद्देश्य यह है कि एक व्यक्ति का प्रतिनिधित्व करता है की एक उदाहरण है:

var personObject = { 
    name: 'Joe', 
    age: 25, 
    hometown: 'New York'   
}; 
7

JSONJavaScript Object Notation है। यह जावास्क्रिप्ट डेटा प्रकार लिखने का एक तरीका है। यह डेटा प्रकार में और स्वयं का नहीं है।

जावास्क्रिप्ट डेटा प्रकारों के कुछ उदाहरणों और उन्हें बनाने के शाब्दिक नोटेशन के लिए नीचे देखें।

JSON सर्वर से डेटा को ब्राउज़र में भेजने के लिए उपयोग किया जा सकता है, उदाहरण के लिए, क्योंकि जावास्क्रिप्ट को सामान्य जावास्क्रिप्ट डेटा संरचना में पार्स करना आसान है।

आपके उदाहरण में, आप वस्तुओं की सूचियों और वस्तुओं की वस्तुओं का उपयोग कर रहे हैं।

यह 3 खाली वस्तुओं की एक सूची है।

var mylist = [ 
    {name: 'John', age: 24}, 
    {name: 'Bill', age: 42}, 
    {name: 'Jill', age: 18}, 
    ] 

आप इस तरह इसे का उपयोग कर सकते हैं::

संख्या:

mylist[1].name 
>>> 'Bill' 

mylist[2].age 
>>> 18 

जावास्क्रिप्ट कई डेटा प्रकार है

[{}, {}, {}] 

यह तीन सरल रिकॉर्ड की एक सूची है

1 
100 
-2000 
123.45 

स्ट्रिंग

"Hi John" 
"Message:\nGo Forth" 

बूलियन

true 
false 

सरणी

[1,2,3] 
[] 
["a", "b", 123] 
["a", "b", 123, [3,4,5]] 

वस्तु

{} 
{a: 10} 
{mylist: [1,2,3], yourlist: [4,5,6]} 
{myself: {name: 'me', age: 10}, yourself: {name: 'you', age: 20}} 

1

JSON एक टेक्स्ट का डेटा विनिमय प्रारूप है। चूंकि इसका नाम ("जावास्क्रिप्ट ऑब्जेक्ट नोटेशन") सुझाता है, यह जेएस से निकलता है; जिसका अर्थ है कि JSON वास्तव में वाक्य रचनात्मक रूप से मान्य जावास्क्रिप्ट है। दूसरे शब्दों में, आप सीधे अपने जेएस कोड में एक JSON स्ट्रिंग पेस्ट कर सकते हैं।

Arrays विशेष वस्तुएं हैं। उनका निर्माण [] द्वारा किया जा सकता है।

ऑब्जेक्ट्स का निर्माण {} के माध्यम से किया जा सकता है।

तो आपके उदाहरण में आपके पास क्या है जो दो JSON तार हैं, जो ऑब्जेक्ट्स के ऐरे का प्रतिनिधित्व करते हैं, दूसरा ऑब्जेक्ट का प्रतिनिधित्व करता है जिसका गुण स्वयं ऑब्जेक्ट्स की Arrays हैं।

संबंधित मुद्दे