Logo Zephyrnet

Cách chuyển đổi JSON thành đối tượng JavaScript

Ngày:

Cách chuyển đổi JSON thành đối tượng JavaScript

JSON (Ký hiệu đối tượng JavaScript) đã trở thành định dạng tuần tự hóa trên thực tế cho các API REST, do con người có thể đọc được, đơn giản và kích thước nhỏ.

Nó sử dụng cùng một ký hiệu được sử dụng để xác định các đối tượng JavaScript và tự nhiên, việc chuyển đổi giữa một chuỗi JSON và các đối tượng JavaScript trở nên vô cùng đơn giản.

Chúng tôi sẽ làm việc với chuỗi JSON sau:

const jsonString = '{"author" : "Plato", "name" : "Republic", "releaseYear" : "375BC"}';

Chuyển đổi chuỗi JSON thành đối tượng JavaScript

Sản phẩm JSON mô-đun cung cấp hai phương pháp - stringify(), biến một đối tượng JavaScript thành một chuỗi JSON và parse(), phân tích cú pháp một chuỗi JSON và trả về một đối tượng JavaScript.

Nó được tích hợp vào chính ngôn ngữ nên không cần cài đặt hoặc nhập bất kỳ phần phụ thuộc nào:

const book = JSON.parse(jsonString);
console.log('Type: ', typeof book);
console.log('Contents: ', book)

Kết quả này trong:

Type: object
Contents: { author:"Plato", name:"Republic", releaseYear:"375BC"
}

Bạn có thể bị cám dỗ eval() một chuỗi thành một đối tượng, nhưng hãy mệt mỏi với việc thực hành:

const book = eval("(" + jsonString + ")")
console.log('Type: ', typeof book);
console.log('Contents: ', book)

Điều này hoạt động tốt:

Type: object
Contents: { author:"Plato", name:"Republic", releaseYear:"375BC"
}

Tuy nhiên, phương pháp này cũng dễ bị tiêm mã. eval() sẽ đánh giá và thực thi bất kỳ văn bản tùy ý nào mà bạn đưa vào, miễn là nó có thể chạy được. Nếu chúng ta jsonString đã được đổi thành:

const jsonString = 'console.log("Malicious code")';

Sau đó, chỉ cần đánh giá nó sẽ dẫn đến:

const book = eval("(" + jsonString + ")") 

Cuối cùng, sự thật là JavaScript chạy, ở một mức độ lớn, trên máy của khách hàng, trên đó họ có thể đánh giá và chạy bất kỳ mã nào họ muốn trong trình duyệt. Tuy nhiên, một sự thay đổi mô hình lớn đã xảy ra trong những năm gần đây và JavaScript ngày càng được sử dụng nhiều hơn trên phía máy chủ cũng. Mặc dù bảo mật của Code Injection cuối cùng rơi vào phía máy chủ, vì bạn không thể thực sự ngăn chặn nó trên front-end - có khả năng JavaScript cũng đang chạy ở phía máy chủ.

Chuyển đổi chuỗi JSON sang mảng JavaScript

Xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, các tiêu chuẩn được ngành công nghiệp chấp nhận và bảng lừa đảo đi kèm. Dừng lệnh Googling Git và thực sự học nó!

Mặc dù bạn có thể phân tích cú pháp JSON thành bất kỳ đối tượng tùy ý nào - một cấu trúc dữ liệu phổ biến mà bạn sẽ chuyển đổi dữ liệu thành các mảng. Mảng JSON được chứa trong dấu ngoặc vuông và các phần tử của mảng được phân tách bằng dấu phẩy:

[element1, element2, element3]

Một phần tử có thể là một phần tử độc lập, một đối tượng JSON khác hoặc một mảng khác, đến lượt nó cũng có thể chứa bất kỳ loại nào trong số này. Chúng ta hãy xem xét hai mảng - một mảng đơn giản với một vài phần tử và một mảng chứa một số đối tượng JSON:

const simpleArrayJson = '["Java", "Python", "JavaScript"]';
const objectArrayJson = '[{"name": "Java", "description": "Java is a class-based, object-oriented programming language."},{"name": "Python", "description": "Python is an interpreted, high-level and general-purpose programming language."}, {"name": "JS", "description": "JS is a programming language that conforms to the ECMAScript specification."}]'; const simpleArray = JSON.parse(simpleArrayJson);
const objectArray = JSON.parse(objectArrayJson); console.log(simpleArray);
console.log(objectArray);

Kết quả này trong:

[ "Java", "Python", "JavaScript"
] [ { name:"Java", description:"Java is a class-based, object-oriented programming language." }, { name:"Python", description:"Python is an interpreted, high-level and general-purpose programming language." }, { name:"JS", description:"JS is a programming language that conforms to the ECMAScript specification." }
]

Kết luận

Trong hướng dẫn ngắn này, chúng tôi đã xem xét cách chuyển đổi một chuỗi JSON thành một đối tượng JavaScript và nhận xét rằng một hành vi xấu có thể tạo ra các lỗ hổng trong mã của bạn.

Cập nhật lần cuối: Tháng Một 20th, 2022

Bài viết này hữu ích không?

Bạn cũng có thể thích…

Nhận hướng dẫn, hướng dẫn và công việc dành cho nhà phát triển trong hộp thư đến của bạn.

David LandupTác giả

Doanh nhân, Kỹ sư phần mềm và máy học, với niềm đam mê sâu sắc đối với việc ứng dụng Tính toán và Học sâu trong Khoa học Đời sống (Tin sinh học, Khám phá Thuốc, Genomics), Khoa học thần kinh (Computational Neuroscience), robot và BCIs.

Niềm đam mê lớn đối với giáo dục dễ tiếp cận và thúc đẩy lý trí, khoa học, chủ nghĩa nhân văn và tiến bộ.

  • Cải thiện kỹ năng của bạn bằng cách giải quyết một vấn đề mã hóa mỗi ngày
  • Nhận giải pháp vào sáng hôm sau qua email
  • Thực hành trên vấn đề thực tế được hỏi bởi các công ty hàng đầu, như:

Xây dựng nền tảng bạn sẽ cần cung cấp, triển khai và chạy các ứng dụng Node.js trong đám mây AWS. Tìm hiểu Lambda, EC2, S3, SQS, v.v.!

© 2013-2022 Lạm dụng ngăn xếp. Đã đăng ký Bản quyền.

Nguồn: https://stackabuse.com/how-to-convert-json-to-javascript-object/

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?