Hướng dẫn which method converts json to javascript? - phương pháp nào chuyển đổi json thành javascript?

Phương thức JSON.parse() phân tích chuỗi JSON, xây dựng giá trị JavaScript hoặc đối tượng được mô tả bởi chuỗi. Một hàm reviver tùy chọn có thể được cung cấp để thực hiện chuyển đổi trên đối tượng kết quả trước khi nó được trả về.JSON.parse() method parses a JSON string, constructing the JavaScript value or object described by the string. An optional reviver function can be provided to perform a transformation on the resulting object before it is returned.

Thử nó

Cú pháp

JSON.parse(text)
JSON.parse(text, reviver)

Thông số

text

Chuỗi để phân tích thành json. Xem đối tượng JSON để biết mô tả về cú pháp JSON.

reviver Tùy chọnOptional

Nếu một hàm, điều này quy định cách mỗi giá trị được tạo ra ban đầu bằng cách phân tích cú pháp được chuyển đổi trước khi được trả lại. Các giá trị không thể gọi được bị bỏ qua. Hàm được gọi với các đối số sau:

JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
0

Khóa liên quan đến giá trị.

JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
1

Giá trị được tạo ra bởi phân tích cú pháp.

Giá trị trả về

Giá trị

JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
2,
JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
3, chuỗi, số, boolean hoặc
JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
4 tương ứng với JSON text đã cho.

Ngoại lệ

JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
6

Ném nếu chuỗi vào Parse không hợp lệ JSON.

Sự mô tả

JSON.parse() phân tích chuỗi JSON theo ngữ pháp JSON, sau đó đánh giá chuỗi như thể đó là biểu thức JavaScript. Ví dụ duy nhất trong đó một đoạn văn bản JSON đại diện cho một giá trị khác với cùng một biểu thức JavaScript là khi xử lý khóa

JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
8 - xem đối tượng cú pháp theo nghĩa đen so với JSON.

Tham số reviver

Nếu một reviver được chỉ định, giá trị được tính toán bằng cách phân tích cú pháp được chuyển đổi trước khi được trả về. Cụ thể, giá trị được tính toán và tất cả các thuộc tính của nó (theo kiểu chiều sâu đầu tiên, bắt đầu với các thuộc tính được lồng nhất và tiến hành chính trị ban đầu) được chạy riêng lẻ qua reviver.

reviver được gọi với đối tượng chứa thuộc tính được xử lý là

JSON.parse(
  '{"p": 5}',
  (key, value) =>
    typeof value === "number"
      ? value * 2 // return value * 2 for numbers
      : value, // return everything else unchanged
);
// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key);
  return value;
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
2 và hai đối số: ____10 và
JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
1, đại diện cho tên thuộc tính dưới dạng chuỗi (ngay cả đối với mảng) và giá trị thuộc tính. Nếu hàm reviver trả về
JSON.parse(
  '{"p": 5}',
  (key, value) =>
    typeof value === "number"
      ? value * 2 // return value * 2 for numbers
      : value, // return everything else unchanged
);
// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key);
  return value;
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
6 (hoặc trả về không có giá trị - ví dụ: nếu thực thi rơi ra khỏi cuối hàm), thuộc tính sẽ bị xóa khỏi đối tượng. Mặt khác, thuộc tính được xác định lại là giá trị trả về. Nếu reviver chỉ biến đổi một số giá trị chứ không phải các giá trị khác, hãy chắc chắn trả về tất cả các giá trị không được cung cấp-nếu không, chúng sẽ bị xóa khỏi đối tượng kết quả.

Tương tự như tham số

JSON.parse(
  '{"p": 5}',
  (key, value) =>
    typeof value === "number"
      ? value * 2 // return value * 2 for numbers
      : value, // return everything else unchanged
);
// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key);
  return value;
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
8 của
JSON.parse(
  '{"p": 5}',
  (key, value) =>
    typeof value === "number"
      ? value * 2 // return value * 2 for numbers
      : value, // return everything else unchanged
);
// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key);
  return value;
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
9, reviver sẽ được gọi lần cuối trên đối tượng gốc với một chuỗi trống là
JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
0 và đối tượng gốc là
JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null
1. Đối với phân tích văn bản JSON cho các giá trị nguyên thủy, reviver sẽ được gọi một lần.

Lưu ý rằng reviver được chạy sau khi giá trị được phân tích cú pháp. Vì vậy, ví dụ, các số trong văn bản JSON sẽ được chuyển đổi thành số JavaScript và có thể mất độ chính xác trong quá trình. Để chuyển số lượng lớn mà không mất độ chính xác, tuần tự hóa chúng thành chuỗi và hồi sinh chúng thành Bigint, hoặc các định dạng chính xác tùy ý thích hợp khác.

Ví dụ

Sử dụng json.parse ()

JSON.parse("{}"); // {}
JSON.parse("true"); // true
JSON.parse('"foo"'); // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse("null"); // null

Sử dụng tham số Reviver

JSON.parse(
  '{"p": 5}',
  (key, value) =>
    typeof value === "number"
      ? value * 2 // return value * 2 for numbers
      : value, // return everything else unchanged
);
// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key);
  return value;
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""

Sử dụng Reviver khi được ghép nối với người thay thế JSON.Stringify ()

Để một giá trị để chuyến đi khứ hồi đúng (nghĩa là nó bị phân rã thành cùng một đối tượng ban đầu), quá trình tuần tự hóa phải lưu giữ thông tin loại. Ví dụ: bạn có thể sử dụng tham số

JSON.parse(
  '{"p": 5}',
  (key, value) =>
    typeof value === "number"
      ? value * 2 // return value * 2 for numbers
      : value, // return everything else unchanged
);
// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key);
  return value;
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
8 của
JSON.parse(
  '{"p": 5}',
  (key, value) =>
    typeof value === "number"
      ? value * 2 // return value * 2 for numbers
      : value, // return everything else unchanged
);
// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key);
  return value;
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""
9 cho mục đích này:

// Maps are normally serialized as objects with no properties.
// We can use the replacer to specify the entries to be serialized.
const map = new Map([
  [1, "one"],
  [2, "two"],
  [3, "three"],
]);

const jsonText = JSON.stringify(
  map,
  (key, value) => (value instanceof Map ? Array.from(value.entries()) : value),
);

console.log(jsonText);
// [[1,"one"],[2,"two"],[3,"three"]]

const map2 = JSON.parse(
  jsonText,
  (key, value) => (key === "" ? new Map(value) : value),
);

console.log(map2);
// Map { 1 => "one", 2 => "two", 3 => "three" }

Bởi vì JSON không có không gian cú pháp để chú thích siêu dữ liệu loại, để hồi sinh các giá trị không phải là đối tượng đơn giản, bạn phải xem xét một trong những điều sau đây:

  • Tuần tự hóa toàn bộ đối tượng thành một chuỗi và tiền tố nó bằng một thẻ loại.
  • "Đoán" dựa trên cấu trúc của dữ liệu (ví dụ: một mảng gồm các mảng hai thành viên)
  • Nếu hình dạng của tải trọng được cố định, dựa trên tên thuộc tính (ví dụ, tất cả các thuộc tính được gọi là
    // Maps are normally serialized as objects with no properties.
    // We can use the replacer to specify the entries to be serialized.
    const map = new Map([
      [1, "one"],
      [2, "two"],
      [3, "three"],
    ]);
    
    const jsonText = JSON.stringify(
      map,
      (key, value) => (value instanceof Map ? Array.from(value.entries()) : value),
    );
    
    console.log(jsonText);
    // [[1,"one"],[2,"two"],[3,"three"]]
    
    const map2 = JSON.parse(
      jsonText,
      (key, value) => (key === "" ? new Map(value) : value),
    );
    
    console.log(map2);
    // Map { 1 => "one", 2 => "two", 3 => "three" }
    
    7 giữ các đối tượng
    // Maps are normally serialized as objects with no properties.
    // We can use the replacer to specify the entries to be serialized.
    const map = new Map([
      [1, "one"],
      [2, "two"],
      [3, "three"],
    ]);
    
    const jsonText = JSON.stringify(
      map,
      (key, value) => (value instanceof Map ? Array.from(value.entries()) : value),
    );
    
    console.log(jsonText);
    // [[1,"one"],[2,"two"],[3,"three"]]
    
    const map2 = JSON.parse(
      jsonText,
      (key, value) => (key === "" ? new Map(value) : value),
    );
    
    console.log(map2);
    // Map { 1 => "one", 2 => "two", 3 => "three" }
    
    8).

Json.parse () không cho phép dấu phẩy kéo dài

// both will throw a SyntaxError
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse('{"foo" : 1, }');

Json.parse () không cho phép trích dẫn đơn lẻ

// will throw a SyntaxError
JSON.parse("{'foo': 1}");

Thông số kỹ thuật

Sự chỉ rõ
Đặc tả ngôn ngữ Ecmascript # Sec-Json.Parse
# sec-json.parse

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

Phương pháp nào chuyển đổi JSON thành đối tượng JavaScript?

Parse () JSON Phân tích cú pháp là quá trình chuyển đổi đối tượng JSON theo định dạng văn bản thành đối tượng JavaScript có thể được sử dụng bên trong một chương trình. Trong JavaScript, cách tiêu chuẩn để làm điều này là bằng cách sử dụng phương thức JSON. Parse (), như tiêu chuẩn JavaScript chỉ định. JSON parsing is the process of converting a JSON object in text format to a Javascript object that can be used inside a program. In Javascript, the standard way to do this is by using the method JSON. parse() , as the Javascript standard specifies.

Phương pháp JavaScript nào chuyển đổi JSON sang giá trị JavaScript?

Json.parse () Phương thức json.parse () phân tích chuỗi JSON, xây dựng giá trị javascript hoặc đối tượng được mô tả bởi chuỗi. The JSON.parse() method parses a JSON string, constructing the JavaScript value or object described by the string.

Phương thức json () trong javascript là gì?

Phương thức JSON () của giao diện phản hồi có luồng phản hồi và đọc nó để hoàn thành.Nó trả lại một lời hứa giải quyết với kết quả phân tích văn bản cơ thể là JSON.takes a Response stream and reads it to completion. It returns a promise which resolves with the result of parsing the body text as JSON .

Phương pháp JavaScript nào được sử dụng chủ yếu với JSON?

Sự kết luận.Phương thức JavaScript JSON Stringify () lấy bất kỳ đối tượng hoặc giá trị JavaScript nào làm đầu vào và chuyển đổi đối tượng/giá trị thành chuỗi JSON.Phương thức JSON Stringify có ba tham số: Giá trị: Đối tượng JavaScript hoặc giá trị phải được chuyển đổi thành chuỗi JSON.JSON stringify() method takes any Javascript object or value as an input and converts the object/value into a JSON string. The JSON stringify method has three parameters: Value: the javascript object or value that has to be converted into a JSON string.