誰能告訴我一個例子中Javascript對象和JSON對象的區別嗎?Javascript對象和JSON對象有什麼區別
回答
A Javascript 對象是Javascript中的數據類型 - 它只有在Javascript中才有意義。通常你看到一個Javascript 對象字面這樣的:
var obj = {
a: 1,
b: 2
};
一個JSON 串是一種數據交換格式 - 它無非是一串字符格式的一種特殊的方式(爲了不同的程序彼此溝通)。正因爲如此,它可以存在於JavaScript內部,或者以其他語言存在,或者存儲在數據庫或文本文件中。
以上的JavaScript對象可以在JSON格式表示在Javascript中是這樣的:
var json = '{ "a": 1, "b": 2 }';
或者在C#這樣的:
string json = "{ \"a\": 1, \"b\": 2 }";
正如你所看到的,JSON是簡單地存儲在一個字符串中。爲了使它有用,JSON字符串可以是解析以產生任何語言的對象。由於JSON格式模仿JavaScript的對象文字語法,使用Javascript使得分析過程簡單:
var obj = eval('(' + json + ')');
雖然通常你會看到:
var obj = JSON.parse(json); // for security reasons
注意,JSON是有限的,它不能存儲功能 - 它可以包含的唯一值是:
- 物體(文字) 個
- 陣列
- 數字
- 布爾
- 串
- 空
JSON是一個javscript對象的文本表示。它實際上是JavaScript記法中的對象字面值(因此名稱爲 - JavaScript Object Notation => JSON)。
如果要「比較」兩個對象,請將文本轉換爲對象,然後比較鍵和值。
一些從文本對象/實例:
// Create obj using an object literal
var obj = {key: 'value'};
// Convert to text using JSON.stringify
var text = JSON.stringify(obj);
// Show the value of text
alert(text); // {"key":"value"}
// Create a new object from text
var newObj = JSON.parse(text); // javascript object
// Show the text version of newObj
alert(JSON.stringify(newObj)); // {"key":"value"}
// Use text as code
var newObj2 = eval('(' + text + ')');
// It is indeed a string literal
alert(JSON.stringify(newObj2)); // {"key":"value"}
如果要比較兩個對象,從JSON將它們轉換爲對象(如果他們是JSON擺在首位),然後做一些事情,如:
function compareObjects(a, b) {
var i, p, aProps = [], bProps = [];
// Simple test first
if (a === b) {
return true;
}
// Get properties of a
for (p in a) {
if (a.hasOwnProperty(p)) {
aProps.push(p);
}
}
// Get properties of b
for (p in b) {
if (b.hasOwnProperty(p)) {
bProps.push(p);
}
}
// If don't have same properties, return false
if (aProps.sort().join('') != bProps.sort().join('')) {
return false;
}
// If property values aren't the same, return false
i = aProps.length;
while (i--) {
if (a[aProps[i]] !== b[bProps[i]]) {
return false;
}
}
// If passed all tests, must be equal
return true;
}
JSON代表 「JavaScript對象符號」。基本上,JSON是Javascript,但僅限於用數據填充對象。通過執行JSON對象,可以將數據「加載」到內存中。
JavaScript是更大的圖片,用額外的代碼行來操縱對象或做各種其他的東西。
甲JSON例子是這樣的:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
一個JavaScript例子是這樣的:
var Glossary = {
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
通知的VAR詞彙=在JavaScript?
那麼首先,JavaScript就像面向對象編程中的任何其他對象一樣。
而RobG表示JSON實際上是Javascript符號中的對象字面值。但不完全。 根據一個Javascript的書,它說這是通過使用對象符號定義的對象:
var newObject =
{ prop1 : true,
showMessage : function (msg) {alert(msg)}
};
根據JSON在JavaScript中,
JSON是JavaScript的對象文字符號的子集。
你也可能要考慮考慮看看這個link
var object = {
name: "John",
profession: "blogger"
};
alert(object.name);//John
alert(typeof(object));//Object
alert(object);//[object Object]
var json = JSON.stringify(object);
alert(json.name);//undefined
alert(typeof(json));//string
alert(json);//{"name":"John","profession":"blogger"}
- 1. JSON和JavaScript對象之間有什麼區別?
- 2. 2個JavaScript對象有什麼區別?
- 3. Javascript對象構造:有什麼區別?
- 4. 對象和引用有什麼區別?
- 5. 對象和實例有什麼區別?
- 6. 「WSH」和「WScript」對象有什麼區別?
- 7. 對象和變量有什麼區別?
- 8. 空對象類型和對象有什麼區別?
- 9. HttpSession對象和HttpContext對象有什麼區別?
- 10. ,對象和指向對象的指針有什麼區別?
- 11. java中的對象和對象有什麼區別
- 12. UML中的引用對象和值對象有什麼區別?
- 13. 全局對象和頭部全局對象有什麼區別?
- 14. _EPROCESS對象和_KPROCESS對象之間有什麼區別
- 15. Singleton對象和sessionfactory單例對象之間有什麼區別
- 16. Javascript中的對象屬性和對象屬性有什麼區別?
- 17. JSON表示法和賦值給對象有什麼區別?
- 18. 在JavaScript中,對象和命名空間有什麼區別?
- 19. 數組與對象有什麼區別?
- 20. 類,對象,實體:有什麼區別?
- 21. 對象和字符串對象之間的區別是什麼
- 22. 是什麼在JavaScript中的新對象和新的對象()之間的區別
- 23. 這兩種返回JSON對象的方式有什麼區別?
- 24. 是什麼是什麼的區別新對象{}和新的對象(){}
- 25. Windows中的內核對象和事件對象有什麼區別?
- 26. 鎖定指定對象和鎖定輔助對象有什麼區別?
- 27. SQLAlchemy中的分離對象和過期對象有什麼區別?
- 28. 線程上下文中的String對象和StringBuffer對象有什麼區別?
- 29. 對象類型和字典類型的映射對象有什麼區別
- 30. 對象角色建模和對象關係映射有什麼區別?
JSON和Javascript對象之間的主要區別是「JSON字符串是數據交換格式」,而Javascript對象是Javascript中的數據類型 – neelmeg