Hướng dẫn save variable to json file javascript - lưu biến vào tệp json javascript

Tôi đã tạo tập lệnh để lưu trữ một số dữ liệu. Hàm

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
6 Trả về dữ liệu ở định dạng JSON. Nhưng tôi muốn tạo một tệp JSON cho dự án bên ngoài của tôi.

var demo = function[table] {
  // JSON file 
  var data = [];

  var headers = [];
  headers[0] = 'img';

  // filling headers
  for[ var i = 1; i < table.rows[0].cells.length; i++ ] {
      headers.push[table.rows[0].cells[i].children[0].text.toLowerCase[].replace[/\s/g, '']];
  };

  for[ var i = 1; i < table.rows.length; i++ ] {
    var obj = {};

    for[ var j = 0; j < table.rows[i].cells.length; j++ ] {
      var cells = table.rows[i].cells[j];

      switch [headers[j]] {
        case 'img':
            obj[headers[j]] = cells.childNodes[0].childNodes[0].getAttribute['src'];
            break;
        case 'name':
            obj[headers[j]] = cells.childNodes[0].text;
            break;
        default:
            obj[headers[j]] = cells.innerHTML;
            break;
     }
    }
    data.push[obj];
  }
  return data;
}
demo[document.getElementById['the_list']];

Câu hỏi của tôi: Có ai có thể xuất biến "Dữ liệu" sang File.txt không?

Đã hỏi ngày 4 tháng 11 năm 2015 lúc 20:14Nov 4, 2015 at 20:14

1

Bạn có thể sử dụng

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
7 -> //github.com/eligrey/filesaver.js//github.com/eligrey/FileSaver.js

Dưới đây là một ví dụ lưu biến JSON:

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}

Làm việc fiddle -> //jsfiddle.net/sf0o8d4j/1///jsfiddle.net/sf0o8d4j/1/

Nhưng như đã đề cập trong bình luận, tôi thực sự không thể thấy lý do tại sao bạn nên lưu nó dưới dạng tệp cục bộ trên hệ thống tập tin khách hàng thay vì sử dụng

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
8.
var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
8
.

Đã trả lời ngày 4 tháng 11 năm 2015 lúc 20:45Nov 4, 2015 at 20:45

Davidkonraddavidkonraddavidkonrad

82.1K17 Huy hiệu vàng200 Huy hiệu bạc259 Huy hiệu Đồng17 gold badges200 silver badges259 bronze badges

Mục tiêu

Giả sử bạn có tệp khách hàng được lưu vào đĩa giữ kỷ lục cho khách hàng trong cửa hàng của bạn.

Là một phần của ứng dụng cửa hàng của bạn, bạn muốn truy cập địa chỉ của khách hàng, sau đó cập nhật số lượng đơn đặt hàng sau khi đặt hàng.

Trong hướng dẫn này, chúng tôi sẽ xem xét cách đọc và ghi vào tệp khách hàng của chúng tôi.

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}

Điều kiện tiên quyết

  • None.

Xem: Đọc/Viết các tệp JSON

Tương tác với các tệp có FS

Truy cập các tệp trong nút được thực hiện với mô -đun gốc FS, cung cấp cho bạn các chức năng để xem, đọc và ghi các tệp cùng với nhiều công cụ khác để làm việc với hệ thống tệp. Bởi vì nó là một mô -đun gốc, chúng tôi có thể yêu cầu nó trong mã của chúng tôi mà không cần cài đặt nó. Chỉ cần gọi

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
9.

Mô -đun

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
0 cho chúng ta tùy chọn các phiên bản đồng bộ hoặc không đồng bộ của nhiều chức năng của nó. Phiên bản đồng bộ chặn thực thi mã khác cho đến khi chúng được truy cập vào hệ thống tập tin, đọc hoặc ghi dữ liệu. Một hàm Async sẽ chạy mà không chặn mã khác. Tìm hiểu thêm về hành vi đồng bộ/async.

Hành vi đồng bộ này có thể hữu ích ở một số nơi, như khi khởi động khi đọc tệp cấu hình trước khi bất kỳ mã nào khác được chạy, nhưng trở thành một vấn đề lớn khi được sử dụng trong máy chủ web nơi tất cả các yêu cầu đến sẽ bị chặn trong khi đọc tệp đồng bộ đang chạy. Vì lý do này, bạn thường muốn sử dụng các phiên bản ASYNC của các hàm

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
0 trong mã của bạn. Chúng tôi sẽ tập trung vào các hoạt động không đồng bộ, nhưng cũng sẽ hiển thị tương đương đồng bộ.

Để đọc và ghi các tệp không đồng bộ với

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
0, chúng tôi sẽ sử dụng
{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
3 và
{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
4.

Chúng tôi cũng sẽ sử dụng Trình trợ giúp JSON toàn cầu để chuyển đổi các đối tượng thành chuỗi JSON và chuỗi JSON thành các đối tượng.

Đọc tệp JSON

Cách đơn giản nhất để đọc một tệp JSON là yêu cầu nó. Vượt qua

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
5 với đường dẫn đến tệp JSON sẽ được đọc đồng bộ và phân tích dữ liệu vào một đối tượng JavaScript.

const config = require["./config.json"];

Nhưng đọc các tệp JSON với yêu cầu có nhược điểm của nó. Tệp sẽ chỉ được đọc một lần; Yêu cầu nó một lần nữa trả về dữ liệu được lưu trong bộ nhớ cache từ lần đầu tiên yêu cầu được chạy. Điều này là tốt để tải dữ liệu tĩnh trên startup [như dữ liệu cấu hình]. Nhưng để đọc một tệp thay đổi trên đĩa, như khách hàng của chúng tôi có thể, chúng tôi cần đọc tệp theo cách thủ công bằng cách sử dụng

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
3 không đồng bộ.

Đọc một tệp với
{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
3

Để truy cập địa chỉ của khách hàng, chúng tôi cần:

  • Đọc dữ liệu JSON từ tệp
  • Phân tích chuỗi JSON vào một đối tượng JavaScript

Để tải dữ liệu từ tệp customer.json, chúng tôi sẽ sử dụng

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
3, chuyển đường dẫn đến tệp của chúng tôi, loại mã hóa tùy chọn và gọi lại để nhận dữ liệu tệp.

Nếu tệp được đọc thành công, nội dung sẽ được chuyển đến cuộc gọi lại.

const fs = require["fs"];
fs.readFile["./customer.json", "utf8", [err, jsonString] => {
  if [err] {
    console.log["File read failed:", err];
    return;
  }
  console.log["File data:", jsonString];
}];
  • ./customer.json là đường dẫn tương đối đến tệp
    {
      "name": "Mega Corp.",
      "order_count": 83,
      "address": "Infinity Loop Drive"
    }
    
    9 là một tham số tùy chọn để mã hóa tệp chúng tôi đang đọc, điều này có thể bị bỏ lại. Nếu không được chỉ định, hàm sẽ trả về
    const config = require["./config.json"];
    
    0 thay vì
    const config = require["./config.json"];
    
    1.
  • const config = require["./config.json"];
    
    2 là chức năng gọi lại chạy sau khi tệp đã được đọc.

Bây giờ chúng ta có nội dung của tệp dưới dạng chuỗi JSON, nhưng chúng ta cần biến chuỗi thành một đối tượng.

Trước khi chúng ta có thể sử dụng dữ liệu từ cuộc gọi lại trong mã của mình, chúng ta phải biến nó thành một đối tượng.

const config = require["./config.json"];
3 lấy dữ liệu JSON làm đầu vào và trả về một đối tượng JavaScript mới. Nếu không, chúng ta sẽ chỉ có một chuỗi dữ liệu với các thuộc tính mà chúng ta có thể truy cập.

const config = require["./config.json"];
3 có thể ném các lỗi ngoại lệ và làm hỏng chương trình của chúng tôi nếu được thông qua chuỗi JSON không hợp lệ. Để ngăn chặn sự cố, chúng tôi quấn json.parse trong một câu lệnh thử để bắt một cách duyên dáng bất kỳ lỗi nào.

Ví dụ này hiển thị đọc và phân tích tệp JSON:

const fs = require["fs"];
fs.readFile["./customer.json", "utf8", [err, jsonString] => {
  if [err] {
    console.log["Error reading file from disk:", err];
    return;
  }
  try {
    const customer = JSON.parse[jsonString];
    console.log["Customer address is:", customer.address]; // => "Customer address is: Infinity Loop Drive"
  } catch [err] {
    console.log["Error parsing JSON string:", err];
  }
}];

Sử dụng

const config = require["./config.json"];
5 từ Reading Customer.json, chúng tôi tạo một đối tượng và có thể truy cập thuộc tính địa chỉ. Nếu
const config = require["./config.json"];
3 ném lỗi, chúng tôi xử lý nó trong khối
const config = require["./config.json"];
7.

Bây giờ chúng tôi có một biểu diễn đối tượng của dữ liệu trong tệp khách hàng của chúng tôi!

Chúng ta cũng có thể đọc tệp đồng bộ bằng cách sử dụng

const config = require["./config.json"];
8. Thay vì nhận cuộc gọi lại,
const config = require["./config.json"];
9 trả về nội dung tệp sau khi đọc tệp.

try {
  // Note that jsonString will be a  since we did not specify an
  // encoding type for the file. But it'll still work because JSON.parse[] will
  // use .toString[].
  const jsonString = fs.readFileSync["./customer.json"];
  const customer = JSON.parse[jsonString];
} catch [err] {
  console.log[err];
  return;
}
console.log[customer.address]; // => "Infinity Loop Drive"

Chúng ta có thể sử dụng kiến ​​thức này để tạo chức năng trợ giúp có thể tái sử dụng để đọc và phân tích tệp JSON. Ở đây chúng tôi tạo một hàm gọi là

const fs = require["fs"];
fs.readFile["./customer.json", "utf8", [err, jsonString] => {
  if [err] {
    console.log["File read failed:", err];
    return;
  }
  console.log["File data:", jsonString];
}];
0 sẽ đọc và phân tích tệp JSON cho chúng tôi. Nó đưa đường dẫn đến tệp và một cuộc gọi lại để nhận đối tượng được phân tích cú pháp và bất kỳ lỗi nào. Nó sẽ bắt bất kỳ lỗi nào được ném bởi
const config = require["./config.json"];
3 cho chúng tôi.

const fs = require["fs"];

function jsonReader[filePath, cb] {
  fs.readFile[filePath, [err, fileData] => {
    if [err] {
      return cb && cb[err];
    }
    try {
      const object = JSON.parse[fileData];
      return cb && cb[null, object];
    } catch [err] {
      return cb && cb[err];
    }
  }];
}
jsonReader["./customer.json", [err, customer] => {
  if [err] {
    console.log[err];
    return;
  }
  console.log[customer.address]; // => "Infinity Loop Drive"
}];

Một lưu ý về mã hóa tệp

Cả

const config = require["./config.json"];
8 và
{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
3 đều có một đối số
const fs = require["fs"];
fs.readFile["./customer.json", "utf8", [err, jsonString] => {
  if [err] {
    console.log["File read failed:", err];
    return;
  }
  console.log["File data:", jsonString];
}];
4 tùy chọn. Nếu bạn chỉ định một mã hóa ký tự, bạn sẽ nhận được một
const config = require["./config.json"];
1. Nếu bạn không chỉ định một ký tự mã hóa cả hai chức năng sẽ trả về
const config = require["./config.json"];
0.

Điều này là do nút không và không thể, giả sử loại nội dung mà tệp chứa. Ngay cả khi bạn có thể. Để xử lý sự thiếu định nghĩa này, Node sẽ đọc byte tệp cho byte và trả về nó dưới dạng bộ đệm không được sử dụng mà bạn có thể xử lý như mong muốn.

Nếu bạn biết nội dung của tệp và có thể cung cấp chi tiết đó cho nút dưới dạng đối số

const fs = require["fs"];
fs.readFile["./customer.json", "utf8", [err, jsonString] => {
  if [err] {
    console.log["File read failed:", err];
    return;
  }
  console.log["File data:", jsonString];
}];
4, nó thường làm cho mã vừa hiệu suất hơn và dễ hiểu hơn.

Ghi vào một tệp với
{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
4

Viết JSON vào hệ thống tập tin tương tự như đọc nó. Chúng tôi sẽ sử dụng

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
4 để ghi dữ liệu không đồng bộ vào tệp newcustomer.json.

Đầu tiên, để ghi dữ liệu vào tệp JSON, chúng ta phải tạo chuỗi JSON của dữ liệu với

const fs = require["fs"];
fs.readFile["./customer.json", "utf8", [err, jsonString] => {
  if [err] {
    console.log["Error reading file from disk:", err];
    return;
  }
  try {
    const customer = JSON.parse[jsonString];
    console.log["Customer address is:", customer.address]; // => "Customer address is: Infinity Loop Drive"
  } catch [err] {
    console.log["Error parsing JSON string:", err];
  }
}];
0. Điều này trả về một biểu diễn chuỗi JSON của một đối tượng JavaScript, có thể được ghi vào một tệp. Tương tự như phân tích dữ liệu vào một đối tượng khi đọc tệp, chúng ta phải biến dữ liệu của mình thành một chuỗi để có thể ghi nó vào một tệp.

Tạo một đối tượng khách hàng với dữ liệu của chúng tôi bên dưới và biến nó thành một chuỗi.

const customer = {
  name: "Newbie Corp.",
  order_count: 0,
  address: "Po Box City"
};
const jsonString = JSON.stringify[customer];
console.log[jsonString];
// => "{"name":"Newbie Co.","address":"Po Box City","order_count":0}"

Lưu ý: Nếu bạn cố gắng viết một đối tượng vào một tệp mà không cần chuỗi nó, tệp của bạn sẽ trống và trông như thế này:without stringifying it, your file will be empty and look like this:

[object, object]

Khi dữ liệu được xâu chuỗi, chúng ta có thể sử dụng

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
4 để tạo tệp khách hàng mới. Chúng tôi vượt qua
{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
4 filePath, dữ liệu khách hàng của chúng tôi để viết và một cuộc gọi lại sẽ được trang trí sau khi tệp được viết. Nếu tệp newcustomer.json không tồn tại, nó sẽ được tạo; Nếu nó tồn tại, nó sẽ được ghi đè!

Dưới đây là một ví dụ về việc viết tệp JSON bằng
{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
4

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
0

Và đó là nó! Khi cuộc gọi lại chạy, tệp đã được ghi vào đĩa. Lưu ý: Chúng tôi chỉ được thông qua một đối tượng lỗi; Các tệp mà chúng tôi đã viết là không được chuyển cho cuộc gọi lại. Chúng ta cũng có thể viết một tệp đồng bộ theo cùng một cách bằng cách sử dụng

const fs = require["fs"];
fs.readFile["./customer.json", "utf8", [err, jsonString] => {
  if [err] {
    console.log["Error reading file from disk:", err];
    return;
  }
  try {
    const customer = JSON.parse[jsonString];
    console.log["Customer address is:", customer.address]; // => "Customer address is: Infinity Loop Drive"
  } catch [err] {
    console.log["Error parsing JSON string:", err];
  }
}];
4:

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
1

Sau khi tập tin của bạn được viết xong, nó sẽ trông giống như thế này:

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
2

Chuỗi theo mặc định đặt tất cả dữ liệu của bạn trên một dòng. Tùy chọn, bạn có thể làm cho tệp đầu ra có thể đọc được bằng cách chuyển số lượng khoảng trống để thụt vào đến

const fs = require["fs"];
fs.readFile["./customer.json", "utf8", [err, jsonString] => {
  if [err] {
    console.log["Error reading file from disk:", err];
    return;
  }
  try {
    const customer = JSON.parse[jsonString];
    console.log["Customer address is:", customer.address]; // => "Customer address is: Infinity Loop Drive"
  } catch [err] {
    console.log["Error parsing JSON string:", err];
  }
}];
0:

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
3

Ở trên, chúng tôi đã nói với Stringify để thụt dòng dữ liệu với 2 khoảng trống. Bây giờ tệp đầu ra của bạn sẽ trông như thế này:

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
4

Cập nhật tệp JSON

Bây giờ chúng tôi có thể đọc và viết các tệp khách hàng của mình, chúng tôi có thể sử dụng chúng như một loại cơ sở dữ liệu đơn giản. Nếu chúng tôi muốn cập nhật dữ liệu trong tệp JSON, chúng tôi có thể đọc nội dung, thay đổi dữ liệu và sau đó viết dữ liệu mới trở lại tệp:

var json = {
    "test" : "qwerty"
}

document.getElementById['save']. title = function[] {
  var textToSave = JSON.stringify[json],
      filename = 'file.txt',
      blob = new Blob[[textToSave], {type: "text/plain;charset=utf-8"}];

  saveAs[blob, filename];
}
5

Chắc chắn không phải là cơ sở dữ liệu hiệu quả nhất mà bạn có thể chọn, nhưng làm việc với các tệp JSON như thế này là một cách đơn giản để tồn tại dữ liệu trong dự án của bạn.

Tóm tắt lại

JSON là một trong những loại dữ liệu phổ biến nhất mà bạn sẽ làm việc trong Node và việc có thể đọc và viết các tệp JSON là rất hữu ích. Bạn đã học cách sử dụng

{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
3 và
{
  "name": "Mega Corp.",
  "order_count": 83,
  "address": "Infinity Loop Drive"
}
4 để làm việc không đồng bộ với hệ thống tập tin, cũng như cách phân tích dữ liệu đến và từ định dạng JSON và bắt lỗi từ
const config = require["./config.json"];
3.

Bạn có thể sử dụng yêu cầu đọc tệp JSON khi khởi động để phân tích đồng bộ tệp JSON trong một dòng. Và bây giờ bạn có thể sử dụng tệp JSON đơn giản như một cửa hàng dữ liệu.

Nếu bạn muốn tìm hiểu thêm, bạn có thể đọc lên JSON thực sự là gì và tìm hiểu thêm về mã không đồng bộ đồng bộ.

Hơn nữa sự hiểu biết của bạn

  • Tìm hiểu về việc sử dụng các luồng Node.js để đọc các tệp thực sự lớn.
  • Đi qua ví dụ này với một đồng nghiệp. Có phải tất cả các khái niệm rõ ràng với bạn? Bạn có cần xem lại bất cứ điều gì?

Tài nguyên bổ sung

  • Hệ thống tệp [Tài liệu Node V12.5.0] [NodeJs.org]

Làm cách nào để lưu một cái gì đó dưới dạng tệp JSON?

Hoặc, khi lưu tệp:..
Chọn tất cả các loại [ *. *] trong trường Lưu dưới dạng ..
Nhập tên tệp. JSON trong trường Tên tệp ..

Làm thế nào JS lưu trữ dữ liệu từ tệp JSON?

Nếu chúng ta muốn viết một cái gì đó trong tệp JSON bằng JavaScript, trước tiên chúng ta sẽ cần chuyển đổi dữ liệu đó thành chuỗi JSON bằng cách sử dụng phương thức JSON.Stringify.Ở trên, một đối tượng máy khách với dữ liệu của chúng tôi đã được tạo, sau đó được biến thành một chuỗi.Đây là cách chúng ta có thể viết một tệp JSON bằng hệ thống tập tin.convert that data into a JSON string by using the JSON. stringify method. Above, a client object with our data has been created which is then turned into a string. This is how we can write a JSON file using the fileSystem.

Làm cách nào để lưu dữ liệu JSON trong Node JS?

8 câu trả lời..
Tạo một đối tượng JavaScript với mảng bảng trong đó var obj = {bảng: []} ;.
Thêm một số dữ liệu vào nó, ví dụ: OBJ.....
Chuyển đổi nó từ một đối tượng sang một chuỗi với JSON.Stringify var json = json.....
Sử dụng fs để ghi tệp vào đĩa var fs = yêu cầu ['fs'];FS ..

Làm cách nào để tạo tệp JSON?

Mở một trình soạn thảo văn bản như Notepad, Visual Studio Code, Sublime hoặc One yêu thích của bạn.Sao chép và dán dưới dữ liệu JSON dưới trình soạn thảo văn bản hoặc tạo cơ sở của riêng bạn trên bài viết của JSON.Khi dữ liệu tệp được xác thực, hãy lưu tệp với phần mở rộng.JSON, và bây giờ bạn biết cách tạo tài liệu JSON hợp lệ.

Bài Viết Liên Quan

Chủ Đề