Sự khác biệt giữa JSON và Object Literal Notation là gì?

🔫 JSON : Giải pháp thay thế không có chất béo cho XML

JSON đã được áp dụng rộng rãi bởi những người nhận thấy rằng nó giúp sản xuất các ứng dụng và dịch vụ phân tán dễ dàng hơn rất nhiều. Loại phương tiện Internet chính thức cho JSON là application/json RFC 4627. Tên tệp JSON sử dụng phần mở rộng .json.

► JavaScript Object Notation ( JSON) là một định dạng trao đổi dữ liệu nhẹ, dựa trên văn bản, không phụ thuộc vào ngôn ngữ. JSON đã được sử dụng để trao đổi dữ liệu giữa các ứng dụng được viết bằng bất kỳ ngôn ngữ Lập trình nào.

Đối tượng JSON là một đối tượng duy nhất có chứa hai hàm, phân tích cú pháp và chuỗi ký tự, được sử dụng để phân tích cú pháp và xây dựng văn bản JSON.

  • JSON.stringify tạo ra một Chuỗi tuân theo ngữ pháp JSON sau.
  • JSON.parse chấp nhận một Chuỗi tuân theo ngữ pháp JSON.

Phương thức parseJSON sẽ được bao gồm trong Fourth Edition of ECMAScript. Trong thời gian chờ đợi, triển khai JavaScript có sẵn tại json.org.

var objLiteral = {foo: 42}; // JavaScript Object
console.log('Object Literal : ', objLiteral ); // Object {foo: 42}foo: 42__proto__: Object

// This is a JSON String, like what you'd get back from an AJAX request.
var jsonString = '{"foo": 452}';
console.log('JOSN String : ', jsonString ); // {"foo": 452}

// This is how you deserialize that JSON String into an Object.
var serverResposnceObject = JSON.parse( jsonString );
console.log('Converting Ajax response to JavaScript Object : ', serverResposnceObject); // Object {foo: 42}foo: 42 __proto__: Object

// And this is how you serialize an Object into a JSON String.
var serverRequestJSON = JSON.stringify( objLiteral );
console.log('Reqesting server with JSON Data : ', serverRequestJSON); // '{"foo": 452}'

JSON là tập con của JavaScript. Javascript được bắt nguồn từ Tiêu chuẩn ngôn ngữ lập trình ECMAScript.

► ECMAScript

ECMAScript đã trở thành một trong những ngôn ngữ lập trình đa năng được sử dụng rộng rãi nhất trên thế giới. Nó được biết đến nhiều nhất như là ngôn ngữ được nhúng trong các trình duyệt web nhưng cũng đã được sử dụng rộng rãi cho các ứng dụng máy chủ và nhúng. ECMAScript dựa trên một số công nghệ có nguồn gốc, nổi tiếng nhất là JavaScript(Netscape Communications)) và JScript(Microsoft Corporation).). Mặc dù trước năm 1994, ECMA được gọi là “Hiệp hội các nhà sản xuất máy tính châu Âu”, sau năm 1994, khi tổ chức này trở nên toàn cầu, “nhãn hiệu” “Ecma” đã được giữ lại vì lý do lịch sử.

ECMAScript là ngôn ngữ, trong khi JavaScript, JScript và thậm chí cả ActionScript được gọi "Dialects".

Các phương ngữ đã được bắt nguồn từ cùng một ngôn từ. Chúng khá giống nhau vì chúng được bắt nguồn từ cùng một ngôn từ nhưng chúng đã trải qua 1 số ít biến hóa. Phương ngữ là một biến thể của chính ngôn ngữ. Nó có nguồn gốc từ một ngôn từ duy nhất .

  • Ngôn ngữ SQL – Hibernate MySQL Dialect, Oracle Dialect, .. có một số thay đổi hoặc bổ sung chức năng.

tin tức về trình duyệt và máy tính của người dùng của bạn .

navigator.appName // "Netscape"

ECMAScript là ngôn ngữ kịch bản tạo nên nền tảng của JavaScript. .JavaScript language resources

ECMA-262 Links
Initial Edition, June 1997
PDF.
2nd Edition, August 1998
PDF.
3rd Edition, December 1999 PDF.
5th Edition, December 2009 PDF.
5.1 Edition, June 2011 HTML.
6th Edition, June 2015 HTML.
7ᵗʰ Edition, June 2016 HTML.
8th edition, June 2017 HTML.
9th Edition, 2018 HTML.

LƯU Ý « Ấn bản thứ 4 của ECMAScript không được xuất bản vì tác phẩm chưa hoàn thành .

JSON xác lập một tập hợp nhỏ những quy tắc định dạng cho màn biểu diễn di động của tài liệu có cấu trúc .

  1. ► Giá trị khóa phải được trích dẫn, chỉ Chuỗi được phép cho khóa. Nếu bạn sử dụng khác với Chuỗi, nó sẽ chuyển đổi thành Chuỗi. Nhưng không được khuyến khích sử dụng các khóa không phải của Chuỗi. Kiểm tra một ví dụ như thế này – { 'key':'val' }hếtRFC 4627 - jsonformatter

    var storage = {
      0 : null,
      1 : "Hello"
    };
    console.log( storage[1] ); // Hello
    console.log( JSON.stringify( storage ) ); // {"0":null,"1":"Hello","2":"world!"}
    
    var objLiteral = {'key1':'val1'};
        var arr = [10, 20], arr2 = [ 'Yash', 'Sam' ];
        var obj = { k: 'v' }, obj2 = { k2: 'v2' };
        var fun = function keyFun() {} ;
    
    objLiteral[ arr ] = 'ArrayVal';     objLiteral[ arr2 ] = 'OverridenArrayVal';
    objLiteral[ obj ] = 'ObjectVal';    objLiteral[ obj2 ] = 'OverridenObjectVal';
    objLiteral[ fun ] = 'FunctionVal';
    
    console.log( objLiteral );
    // Object {key1: "val1", 10,20: "ArrayVal", Yash,Sam: "OverridenArrayVal", [object Object]: "OverridenObjectVal", function keyFun() {}: "FunctionVal"}
    console.log( JSON.stringify( objLiteral ) );
    // {"key1":"val1","10,20":"ArrayVal","Yash,Sam":"OverridenArrayVal","[object Object]":"OverridenObjectVal","function keyFun() {}":"FunctionVal"}
    console.log( JSON.parse( JSON.stringify( objLiteral ) ) );
    // Object {key1: "val1", 10,20: "ArrayVal", Yash,Sam: "OverridenArrayVal", [object Object]: "OverridenObjectVal", function keyFun() {}: "FunctionVal"}
    
    console.log('Accessing Array  Val : ', objLiteral[ [10,20] ] );
    console.log('Accessing Object Val : ', objLiteral[ '[object Object]' ] );
    console.log('Accessing Function Val : ', objLiteral[ 'function keyFun() {}' ] );
    
  2. ► Các chuỗi JSON phải được trích dẫn bằng “chứ không phải”. Một chuỗi rất giống chuỗi C hoặc Java. Các chuỗi phải được đặt trong dấu ngoặc kép.

    • Chữ nghĩa là các giá trị cố định, không phải biến, mà bạn cung cấp theo nghĩa đen trong tập lệnh của mình.
    • Chuỗi là một chuỗi gồm không hoặc nhiều ký tự được đặt trong dấu ngoặc kép với ký hiệu gạch chéo ngược, ký hiệu giống nhau được sử dụng trong hầu hết các ngôn ngữ lập trình.
      • 🔫 – Các Biểu tượng Đặc biệt được phép sử dụng trong Chuỗi nhưng không được khuyến khích sử dụng.
      • \ “- Có thể thoát các ký tự đặc biệt. Tuy nhiên, bạn không nên thoát khỏi (‘) Dấu ngoặc kép. Ở chế độ Nghiêm ngặt, nó sẽ xuất hiện và Lỗi – SyntaxError: Unexpected token ' in JSON

    Kiểm tra mã này { "Hai\" \n Team 🔫":5, "Bye \'": 7 }qua các Chỉnh sửa JSON trực tuyến.ModesnotStrict,Strinct.

    var jsonString = "{'foo': 452}"; // {'foo': 452}
    var jsonStr = '{"foo": 452}'; // {"foo": 452}
    
    JSON.parse( jsonString ); // Unexpected token ' in JSON at position 1(…)
    JSON.parse( jsonStr ); // Object {foo: 452}
    
    objLiteral['key'] = 'val'; // Object {foo: 42, key: "val"}
    objLiteral.key2 = 'val';
    
    // objLiteral.key\n3 - SyntaxError: Invalid or unexpected token
    objLiteral['key\n3'] = 'val'; // Object {"foo": "42", key: "val", key2: "val", "key↵3": "val"}
    
    JSON.stringify( objLiteral ); // {"foo":"42","key":"val","key2":"val","key\n3":"val"}
    

Người truy vấn Thuộc tính đối tượng người tiêu dùng phân phối quyền truy vấn vào những thuộc tính của đối tượng người dùng bằng cách sử dụng ký hiệu dấu chấm hoặc ký hiệu dấu ngoặc .

  1. ► Bạn có một khoanh vùng phạm vi giá trị hạn chế hơn ( ví dụ : không có tính năng nào được phép ). Giá trị hoàn toàn có thể là một chuỗi trong dấu ngoặc kép, số, boolean, null, đối tượng người dùng hoặc mảng. Các cấu trúc này hoàn toàn có thể được lồng vào nhau .
    var objLiteral = {};
    objLiteral.funKey = function sayHello() {
        console.log('Object Key with function as value - Its outcome message.');
    };
    
    objLiteral['Key'] = 'Val';
    
    console.log('Object Literal Fun : ', objLiteral );
    // Object Literal Fun :  Object {Key: "Val"}Key: "Val"funKey: sayHello()__proto__: Object
    console.log( JSON.stringify( objLiteral ) ); // {"Key":"Val"}
    

Sự khác biệt giữa JSON và Object Literal Notation là gì?

JavaScriptlà cách triển khai phổ biến nhất của Tiêu chuẩn ECMAScript. Các tính năng cốt lõi của Javascript dựa trên tiêu chuẩn ECMAScript, nhưng Javascript cũng có các tính năng bổ sung khác không có trong tiêu chuẩn / đặc tả ECMA. Mọi trình duyệt đều có trình thông dịch JavaScript.

JavaScript là một ngôn từ được gõ động. Điều đó có nghĩa là bạn không phải chỉ định kiểu tài liệu của một biến khi bạn khai báo nó và những kiểu tài liệu được quy đổi tự động hóa khi cần trong quy trình thực thi tập lệnh .

Literals :

'37' - 7    // 30
'37' + 7    // "377"
+'37' + 7   // 44
+'37'       // 37
'37'        // "37"

parseInt('37');     // 37
parseInt('3.7');    // 3

parseFloat(3.7);    // 3.7

// An alternative method of retrieving a number from a string is with the + (unary plus) operator:
+'3.7'              // 3.7

Object literals RFC 7159

Cấu trúc đối tượng người dùng được trình diễn dưới dạng một cặp dấu ngoặc nhọn bao quanh không hoặc nhiều cặp tên / giá trị ( hoặc thành viên ). Tên là một chuỗi. Dấu hai chấm đứng sau mỗi tên, ngăn cách tên với giá trị. Một dấu phẩy duy nhất phân tách một giá trị khỏi một tên sau đây. Các tên trong một đối tượng người dùng NÊN là duy nhất .

ECMAScript hỗ trợ kế thừa dựa trên nguyên mẫu. Mọi phương thức khởi tạo đều có một nguyên mẫu được liên kết và mọi đối tượng được tạo bởi phương thức khởi tạo đó đều có một tham chiếu ngầm đến nguyên mẫu (được gọi là nguyên mẫu của đối tượng) được liên kết với phương thức khởi tạo của nó. Hơn nữa, một nguyên mẫu có thể có một tham chiếu ngầm không rỗng đến nguyên mẫu của nó, v.v.; đây được gọi là chuỗi nguyên mẫu.

Sự khác biệt giữa JSON và Object Literal Notation là gì?

Nói chung, trong một ngôn từ hướng đối tượng người dùng dựa trên lớp, trạng thái được thực thi bởi những biểu lộ, những phương pháp được triển khai bởi những lớp và sự thừa kế chỉ là cấu trúc và hành vi. Trong ECMAScript, trạng thái và phương pháp được triển khai bởi những đối tượng người dùng và cấu trúc, hành vi và trạng thái đều được thừa kế .
Nguyên mẫu là một đối tượng người dùng được sử dụng để tiến hành thừa kế cấu trúc, trạng thái và hành vi trong ECMAScript. Khi một phương pháp khởi tạo tạo một đối tượng người tiêu dùng, đối tượng người tiêu dùng đó sẽ tham chiếu ngầm đến nguyên mẫu tương quan của phương pháp khởi tạo nhằm mục đích mục tiêu xử lý những tham chiếu thuộc tính. Nguyên mẫu được link của phương pháp khởi tạo hoàn toàn có thể được tham chiếu bởi biểu thức chương trình constructor.prototype và những thuộc tính được thêm vào nguyên mẫu của đối tượng người dùng được san sẻ, trải qua thừa kế, bởi tổng thể những đối tượng người dùng san sẻ nguyên mẫu .

Rate this post
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments