Phương thức nào chuyển đổi chuỗi json thành đối tượng javascript?

Phân tích cú pháp JSON là quá trình chuyển đổi đối tượng JSON ở định dạng văn bản thành đối tượng Javascript có thể được sử dụng bên trong chương trình. Trong Javascript, cách tiêu chuẩn để thực hiện việc này là sử dụng phương pháp

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1, vì tiêu chuẩn Javascript chỉ định

Sử dụng JSON. phân tích cú pháp ()

Các chương trình Javascript có thể đọc các đối tượng JSON từ nhiều nguồn khác nhau, nhưng các nguồn phổ biến nhất là cơ sở dữ liệu hoặc API REST. Một đối tượng JSON được đọc từ các nguồn này sẽ vào một chương trình Javascript ở định dạng chuỗi "phẳng" có chứa các cặp khóa-giá trị của đối tượng

Để tạo một biến chuỗi hợp lệ, bạn phải bao quanh chuỗi JSON bằng dấu nháy đơn

let flatJSON = '{"a": "b", "c": 1, "d": {"e": 2}}';

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 yêu cầu một tham số. chuỗi JSON phẳng sẽ được chuyển đổi thành đối tượng JSON.
JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 trực tiếp lấy chuỗi JSON phẳng hoặc dưới dạng biến Javascript. Việc truyền các biến dễ dàng và dễ đọc hơn so với việc truyền vào một chuỗi JSON phẳng dài

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 lấy một tham số thứ hai tùy chọn được gọi là “người phục hồi. ” Trình khôi phục là một chức năng chuyển đổi dữ liệu JSON mà
JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 không thể tự xử lý. Ví dụ về hàm hồi sinh này xử lý các giá trị không xác định

let flatJSON3 = ‘{“a”: “b”, “c”: 1, “d”: {“e”: 2}}’;
let reviver = function(key, value) {
    if(typeof value === 'undefined') { return null; }
;

let parsed = JSON.parse(flatJSON3, reviver);

Reviver chuyển đổi các giá trị trống và các đối tượng phức tạp thành các đối tượng Javascript hợp lệ. Phần tiếp theo đi vào chi tiết cụ thể về cách thực hiện điều này với các ví dụ phổ biến

Bản thân

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 không thể thực thi các chức năng hoặc thực hiện các phép tính. Các đối tượng JSON chỉ có thể chứa các loại dữ liệu đơn giản và không thể thực thi mã

Nếu bạn buộc mã vào một đối tượng JSON bằng một chuỗi, bạn phải sử dụng hàm Javascript

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
4 để chuyển đổi nó thành thứ mà trình thông dịch Javascript hiểu được. Quá trình này dễ xảy ra lỗi và thường gây ra sự cố với phạm vi của mã được chuyển đổi

Revivers có mục đích cụ thể là chuyển đổi dữ liệu chuỗi thành các loại Javascript hợp lệ. Bạn nên thực hiện chuyển đổi trong các chức năng hồi sinh càng đơn giản càng tốt. Trong một số ít trường hợp, một chuyển đổi chuyên biệt có thể yêu cầu nhiều tính toán

Xử lý JSON. parse() Các trường hợp đặc biệt với Reviver

Xử lý lỗi

Dữ liệu có định dạng không đúng được chuyển đến

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 sẽ gây ra lỗi, ngừng xử lý và không trả về dữ liệu đã xử lý, ngay cả khi phần còn lại của JSON là chính xác. Nếu xảy ra lỗi, đừng bao giờ cho rằng
JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 trả về một giá trị cụ thể

Tùy thuộc vào cách bạn viết chương trình của mình, một lỗi có thể ngăn phần còn lại của mã Javascript của bạn thực thi. Kết thúc các cuộc gọi đến

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 trong câu lệnh try catch để bạn có thể chỉ định rõ ràng điều gì sẽ xảy ra nếu phân tích cú pháp không thành công

try {
    JSON.parse(input);
} catch (e) {
    return undefined; // Or whatever action you want here
}

Dữ liệu mảng

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 chuyển đổi dữ liệu mảng thành mảng Javascript. Dữ liệu mảng phải là một chuỗi JSON hợp lệ

Đây là một cách sử dụng không phổ biến cho

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1. Việc khai báo một mảng trong mã dễ dàng hơn thay vì đi qua JSON trước. Khai báo các mảng bên trong chương trình Javascript của bạn bất cứ khi nào có thể

ngày

Ngày không phải là loại JSON hợp lệ. Chuyển đổi chuỗi có định dạng cụ thể thành loại ngày Javascript là một bước bổ sung phổ biến sau khi sử dụng

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1. Một số ví dụ được hiển thị dưới đây

Hàm hồi sinh chuyển đổi chuỗi thành ngày có thể trông như thế này, nếu sử dụng định dạng ngày chuẩn ISO

function reviver(key, value) {
    if (value.match(/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/)) {
        return new Date(value);
    }
}

Đối tượng Javascript

let flatJSON3 = ‘{“a”: “b”, “c”: 1, “d”: {“e”: 2}}’;
let reviver = function(key, value) {
    if(typeof value === 'undefined') { return null; }
;

let parsed = JSON.parse(flatJSON3, reviver);
1 dịch các định dạng chuỗi khác nhau thành ngày tháng. Luôn kiểm tra xem ngày kết quả có hợp lý hay không, ngay cả khi đối tượng
let flatJSON3 = ‘{“a”: “b”, “c”: 1, “d”: {“e”: 2}}’;
let reviver = function(key, value) {
    if(typeof value === 'undefined') { return null; }
;

let parsed = JSON.parse(flatJSON3, reviver);
1 “hiểu” định dạng của nó. Dưới đây là ví dụ về chuyển đổi chuỗi dẫn đến ngày trong thế giới thực không hợp lệ

________số 8

Giá trị trống

Giá trị null và chuỗi rỗng (“”) là các giá trị JSON hợp lệ, nhưng trạng thái không xác định không hợp lệ trong JSON.

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 sẽ thất bại nếu nó gặp một giá trị không xác định

Tìm kiếm các giá trị không xác định trong chuỗi JSON là một giải pháp khả thi cho sự cố này, nhưng hãy cẩn thận để không khớp với bất kỳ trường hợp nào của từ “không xác định” trong một chuỗi. Một giải pháp tốt hơn là tìm kiếm và thay thế giá trị không xác định bằng một loại giá trị trống tương tự

let parsedVal = (typeof value === 'undefined') ? null : value;

Sử dụng JSON. phân tích cú pháp () một cách an toàn

Bao bọc

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 trong một chức năng để giải quyết các giới hạn của nó, xử lý các trường hợp đặc biệt phù hợp với nhu cầu của bạn. Bao gồm chức năng hồi sinh trong phần đóng để xử lý các nhu cầu chuyển đổi dữ liệu phổ biến

Khi bạn cần chuyển đổi dữ liệu chuyên biệt hơn chức năng phục hồi mặc định của bạn có thể xử lý, hãy thêm chức năng phục hồi thứ hai làm tham số cho chức năng phân tích cú pháp an toàn của bạn. Gọi chức năng hồi sinh thứ hai ở cuối chức năng hồi sinh mặc định

Đặt tất cả những điều này cùng với các ví dụ mã trước đó, đây là một chức năng phân tích cú pháp JSON an toàn đơn giản

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
0

Sự kết luận

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 là một phương pháp quan trọng để chuyển đổi dữ liệu JSON ở dạng chuỗi thành các đối tượng Javascript. Có thể chuyển đổi các đối tượng đơn giản hoặc phức tạp, nhưng bạn không bao giờ được chuyển đổi phép tính hoặc mã, chẳng hạn như vòng lặp for

Đăng ký tham gia Chương trình cấp bằng cấp nano về lập trình của chúng tôi ngay hôm nay để tìm hiểu thêm về phân tích cú pháp JSON với

JSON.parse('{"a", "b", "c", 1}');
let flatJSON2 = '{"a": "b", "c": 1, "d": {"e": 2}}';
JSON.parse(flatJSON2);
1 và các khái niệm lập trình khác

Phương thức nào chuyển đổi chuỗi JSON thành đối tượng JavaScript?

Cái JSON. parse() phương thức phân tích cú pháp một chuỗi JSON, xây dựng giá trị hoặc đối tượng JavaScript được mô tả bởi chuỗi. Một chức năng hồi sinh 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ề.

Phương pháp nào chuyển đổi JSON thành chuỗi?

Sử dụng hàm JavaScript JSON. stringify() để chuyển nó thành chuỗi. const myJSON = JSON. xâu chuỗi (obj); .

Chúng ta có thể chuyển đổi chuỗi thành JSON trong JavaScript không?

Dữ liệu chuỗi có thể dễ dàng chuyển đổi thành JSON bằng cách sử dụng hàm stringify() và cũng có thể thực hiện việc này bằng cách sử dụng eval() , hàm này chấp nhận biểu thức JavaScript mà bạn sẽ tìm hiểu về .

Hai phương thức được sử dụng để phân tích chuỗi JSON thành đối tượng JavaScript là gì?

Giới thiệu. Đối tượng JSON, có sẵn trong tất cả các trình duyệt hiện đại, có hai phương thức hữu ích để xử lý nội dung có định dạng JSON. phân tích cú pháp và xâu chuỗi .