Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chuyển đổi kiểu dữ liệu JSON từ chuỗi về số/boolean trong JavaScript

Cho object JSON mà các giá trị số và boolean bị nhầm thành chuỗi (ví dụ: {"name":"sam","age":"24","isMarried":"false"}). Viết hàm tự động chuyển đúng kiểu: chuỗi số thành Number, chuỗi "true"/"false" thành Boolean.

Ví dụ

const obj = {"name":"sam","age":"24","isMarried":"false"};
const convertToOriginal = (obj = {}) => {
  const keys = Object.keys(obj);
  for (let i = 0; i < keys.length; i++) {
    const key = keys[i];
    const num = parseInt(obj[key], 10);
    const val = obj[key];
    if (num && String(num) === val) {
      obj[key] = num;
    } else if (val === 'true' || val === 'false') {
      obj[key] = val === 'true';
    }
  }
};
convertToOriginal(obj);
console.log(obj); // { name: 'sam', age: 24, isMarried: false }

Kết quả

{ name: 'sam', age: 24, isMarried: false }

Lưu ý: Code gốc có lỗi gán Boolean(val) khiến "false" thành true. Đã sửa dùng val === 'true'.