Sự khác biệt đối tượng json và javascript

JSON là một loại định dạng để mô tả các đối tượng, tương thích với các ngôn ngữ mã hóa khác nhau. Sự khác biệt đáng chú ý nhất giữa biểu diễn JSON và đối tượng JavaScript là việc sử dụng dấu ngoặc kép

Đối tượng

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
3 chứa các phương thức phân tích cú pháp Ký hiệu đối tượng JavaScript (JSON) và chuyển đổi giá trị thành JSON. Nó không thể được gọi hoặc xây dựng

Sự miêu tả

Không giống như hầu hết các đối tượng toàn cầu,

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
3 không phải là hàm tạo. Bạn không thể sử dụng nó với toán tử
{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
5 hoặc gọi đối tượng
{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
3 như một hàm. Tất cả các thuộc tính và phương thức của
{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
3 là tĩnh (giống như đối tượng
{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
8)

Sự khác biệt về JavaScript và JSON

JSON là một cú pháp để tuần tự hóa các đối tượng, mảng, số, chuỗi, booleans và

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
9. Nó dựa trên cú pháp JavaScript, nhưng khác với JavaScript. hầu hết JavaScript không phải là JSON. Ví dụ

Đối tượng và Mảng

Tên thuộc tính phải là chuỗi trích dẫn kép;

Số

Số 0 đứng đầu bị cấm. Một dấu thập phân phải được theo sau bởi ít nhất một chữ số.

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
0 và
{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
1 không được hỗ trợ

Bất kỳ văn bản JSON nào cũng là một biểu thức JavaScript hợp lệ, nhưng chỉ sau khi sửa đổi bộ siêu dữ liệu JSON. Trước khi sửa đổi, U+2028 LINE SEPARATOR và U+2029 PARAGRAPH SEPARATOR được cho phép ở dạng chuỗi ký tự và khóa thuộc tính trong JSON;

Những khác biệt khác bao gồm chỉ cho phép chuỗi trích dẫn kép và không hỗ trợ cho

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
3 hoặc nhận xét. Đối với những người muốn sử dụng định dạng cấu hình thân thiện với con người hơn dựa trên JSON, có JSON5, được sử dụng bởi trình biên dịch Babel và YAML được sử dụng phổ biến hơn

Cùng một văn bản có thể đại diện cho các giá trị khác nhau theo nghĩa đen của đối tượng JavaScript so với. JSON cũng vậy. Để biết thêm thông tin, hãy xem Cú pháp chữ đối tượng so với. JSON

Ngữ pháp JSON đầy đủ

Cú pháp JSON hợp lệ được xác định chính thức theo ngữ pháp sau, được biểu thị bằng ABNF và được sao chép từ tiêu chuẩn JSON của IETF (RFC)

JSON-text = object / array
begin-array     = ws %x5B ws  ; [ left square bracket
begin-object    = ws %x7B ws  ; { left curly bracket
end-array       = ws %x5D ws  ; ] right square bracket
end-object      = ws %x7D ws  ; } right curly bracket
name-separator  = ws %x3A ws  ; : colon
value-separator = ws %x2C ws  ; , comma
ws = *(
     %x20 /              ; Space
     %x09 /              ; Horizontal tab
     %x0A /              ; Line feed or New line
     %x0D                ; Carriage return
     )
value = false / null / true / object / array / number / string
false = %x66.61.6c.73.65   ; false
null  = %x6e.75.6c.6c      ; null
true  = %x74.72.75.65      ; true
object = begin-object [ member *( value-separator member ) ]
         end-object
member = string name-separator value
array = begin-array [ value *( value-separator value ) ] end-array
number = [ minus ] int [ frac ] [ exp ]
decimal-point = %x2E       ; .
digit1-9 = %x31-39         ; 1-9
e = %x65 / %x45            ; e E
exp = e [ minus / plus ] 1*DIGIT
frac = decimal-point 1*DIGIT
int = zero / ( digit1-9 *DIGIT )
minus = %x2D               ; -
plus = %x2B                ; +
zero = %x30                ; 0
string = quotation-mark *char quotation-mark
char = unescaped /
    escape (
        %x22 /          ; "    quotation mark  U+0022
        %x5C /          ; \    reverse solidus U+005C
        %x2F /          ; /    solidus         U+002F
        %x62 /          ; b    backspace       U+0008
        %x66 /          ; f    form feed       U+000C
        %x6E /          ; n    line feed       U+000A
        %x72 /          ; r    carriage return U+000D
        %x74 /          ; t    tab             U+0009
        %x75 4HEXDIG )  ; uXXXX                U+XXXX
escape = %x5C              ; \
quotation-mark = %x22      ; "
unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
HEXDIG = DIGIT / %x41-46 / %x61-66   ; 0-9, A-F, or a-f
       ; HEXDIG equivalent to HEXDIG rule in [RFC5234]
DIGIT = %x30-39            ; 0-9
      ; DIGIT equivalent to DIGIT rule in [RFC5234]

Khoảng trắng không đáng kể có thể xuất hiện ở bất kỳ đâu ngoại trừ bên trong

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
4 (các số không được chứa khoảng trắng) hoặc
{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
5 (nơi nó được hiểu là ký tự tương ứng trong chuỗi hoặc sẽ gây ra lỗi). Ký tự tab (U+0009), ký tự xuống dòng (U+000D), ký tự xuống dòng (U+000A) và ký tự khoảng trắng (U+0020) là các ký tự khoảng trắng hợp lệ duy nhất

thuộc tính tĩnh

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
6

Giá trị ban đầu của thuộc tính

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
7 là chuỗi
{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
8. Tài sản này được sử dụng trong
{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
9

phương pháp tĩnh

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
10

Phân tích cú pháp một đoạn văn bản chuỗi dưới dạng JSON, tùy ý chuyển đổi giá trị được tạo và các thuộc tính của nó, đồng thời trả về giá trị

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
11

Trả về một chuỗi JSON tương ứng với giá trị đã chỉ định, tùy chọn chỉ bao gồm một số thuộc tính nhất định hoặc thay thế các giá trị thuộc tính theo cách do người dùng xác định

JSON chỉ là đối tượng JavaScript?

JSON là định dạng dữ liệu dựa trên văn bản tuân theo cú pháp đối tượng JavaScript , được phổ biến bởi Douglas Crockford. Mặc dù nó gần giống với cú pháp theo nghĩa đen của đối tượng JavaScript, nhưng nó có thể được sử dụng độc lập với JavaScript và nhiều môi trường lập trình có khả năng đọc (phân tích cú pháp) và tạo JSON.

Sự khác biệt giữa đối tượng JSON và đối tượng là gì?

Đối tượng theo nghĩa đen là khi bạn khai báo một Đối tượng trong mã JavaScript, đây là một biến lưu trữ dữ liệu theo cặp khóa-giá trị, trong khi JSON là viết tắt của Ký hiệu đối tượng JavaScript và đó là định dạng không phụ thuộc vào ngôn ngữ để lưu trữ và truyền dữ liệu dựa trên Đối tượng JavaScript

Đối tượng và JSON có giống nhau không?

JSON không thể là đối tượng . JSON là một định dạng chuỗi. Dữ liệu chỉ là JSON khi ở định dạng chuỗi. Khi nó được chuyển đổi thành một biến JavaScript, nó sẽ trở thành một đối tượng JavaScript.

JSON có giống với JavaScript không?

Định dạng JSON về mặt cú pháp giống với mã để tạo các đối tượng JavaScript . Do sự giống nhau này, một chương trình JavaScript có thể dễ dàng chuyển đổi dữ liệu JSON thành các đối tượng JavaScript gốc. Cú pháp JSON bắt nguồn từ cú pháp ký hiệu đối tượng JavaScript, nhưng định dạng JSON chỉ là văn bản.