Hướng dẫn is json a javascript object? - json có phải là một đối tượng javascript không?

Đối tượng JSON chứa các phương thức phân tích ký hiệu đối tượng JavaScript (JSON) và chuyển đổi các giá trị thành JSON. Nó không thể được gọi hoặc xây dựng.JSON object contains methods for parsing JavaScript Object Notation (JSON) and converting values to JSON. It can't be called or constructed.

Sự mô tả

Không giống như hầu hết các đối tượng toàn cầu, JSON không phải là một hàm tạo. Bạn không thể sử dụng nó với toán tử new hoặc gọi đối tượng JSON làm hàm. Tất cả các thuộc tính và phương thức của JSON là tĩnh (giống như đối tượng Math).

Sự khác biệt của 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à null. 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 tài sản phải là chuỗi được trích dẫn kép; Dấu phẩy bị cấm.

Số

Các số không hàng đầu bị cấm. Một điểm 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 JSON SuperSet. Trước khi sửa đổi, bộ phân cách dòng U+2028 và phân tách đoạn U+2029 được cho phép trong các chuỗi chữ và khóa thuộc tính trong JSON; Nhưng việc sử dụng tương tự trong các chữ JavaScript là một

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

Các khác biệt khác bao gồm chỉ cho phép các chuỗi được 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 trong các chữ cái JavaScript so với JSON. Để biết thêm thông tin, hãy xem Đối tượng cú pháp theo nghĩa đen so với JSON.

Ngữ pháp JSON đầy đủ

Cú pháp JSON hợp lệ được chính thức được xác định bởi ngữ pháp sau, được thể hiện bằng ABNF và được sao chép từ tiêu chuẩn IETF JSON (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 cứ đâu ngoại trừ trong một

{
  "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ố phải không 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 (trong đó 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), return vận chuyển (u+000D), nguồn cấp dữ liệu dòng (u+000a) và các ký tự không gian (u+0020) là các ký tự khoảng trắng hợp lệ duy nhất.

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"
        }
      }
    }
  }
}
6

Phân tích một đoạn văn bản chuỗi là JSON, tùy chọn chuyển đổi giá trị được tạo ra và các thuộc tính của nó và 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"
        }
      }
    }
  }
}
7

Trả về chuỗi JSON tương ứng với giá trị được 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.

Ví dụ

Ví dụ json

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

Bạn có thể sử dụng phương thức

{
  "browsers": {
    "firefox": {
      "name": "Firefox",
      "pref_url": "about:config",
      "releases": {
        "1": {
          "release_date": "2004-11-09",
          "status": "retired",
          "engine": "Gecko",
          "engine_version": "1.7"
        }
      }
    }
  }
}
6 để chuyển đổi chuỗi JSON trên thành đối tượng JavaScript:

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

console.log(JSON.parse(jsonText));

Thông số kỹ thuật

Sự chỉ rõ
Đặc tả ngôn ngữ Ecmascript # sec-json-expect
# sec-json-object

Tính tương thích của trình duyệt web

Bảng BCD chỉ tải trong trình duyệt

Xem thêm

JSON có giống với đối tượng JavaScript không?

Mặc dù cú pháp của JSON tương tự như đối tượng JavaScript, JSON khác với các đối tượng JavaScript. Khóa trong cặp khóa/giá trị nên được trích dẫn gấp đôi. Khóa trong cặp khóa/giá trị có thể không có dấu ngoặc kép. JSON không thể chứa các chức năng.JSON is different from JavaScript objects. The key in key/value pair should be in double quotes. The key in key/value pair can be without double quotes. JSON cannot contain functions.

Tệp JSON có phải là một đối tượng không?

JSON là viết tắt của ký hiệu đối tượng JavaScript.Một tệp JSON có.A JSON file has . json as its extension and the data inside are represented in a key:value pair, just like a traditional JavaScript object.

Có phải tất cả các đối tượng JavaScript JSON?

Sự khác biệt của 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à null.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.most of JavaScript is not JSON. For example: Objects and Arrays.

Có phải JSON luôn luôn phản đối?

Như tên đã nói, JSON là một định dạng ký hiệu đối tượng JavaScript, mặc dù từ lâu kể từ khi ly dị với ngôn ngữ JavaScript.Vì vậy, có, theo định nghĩa, một chuỗi JSON mã hóa một tuần tự hóa một thứ được gọi là một đối tượng;Mặc dù mặt khác, không, tự tuần tự hóa không phải là đối tượng đó.JSON is a JavaScript Object Notation format, though it is long since divorced from the JavaScript language. So yes, by definition, a JSON string encodes a serialization of something which is referred to as an object; though on the other hand, no, the serialization itself isn't that object.