Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แปลงค่า JSON ประเภทตัวเลขหรือบูลลีนจากสตริงกลับเป็นต้นฉบับใน JavaScript

สมมติว่ามี JSON object สั้นๆ ดังนี้:

const obj = {"name":"sam","age":"24","isMarried":"false"};

ที่นี่ ค่าบางอย่างที่เป็น Number และ Boolean โดยบังเอิญถูกแปลงเป็น String

เช่น คุณสมบัติ age ที่เป็น Number และ isMarried ที่เป็น boolean งานของเราคือเขียนฟังก์ชันที่รับออบเจ็กต์ดังกล่าวและเปลี่ยนชนิดข้อมูลที่ผิดให้ถูกต้อง

ตัวอย่าง

โค้ดสำหรับนี้จะเป็นดังนี้:

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] = Boolean(val);
    };
  };
};

convertToOriginal(obj);
console.log(obj);

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้:

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