将字符串类型的 JSON 对象从字符串类型转换为其在 JavaScript 中的原始类型(数字或布尔类型)


假设我们有一个这样的简短 JSON 对象 -

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

这里,一些数字和布尔值被错误地强制转换为字符串。

比如 Number 类型的 age 属性和 boolean 类型的 isMarried 属性。我们的工作是编写一个函数,该函数获取这样一个对象,并用正确的类型正确地更改这些不正确的数据类型。

示例

代码如下 -

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 }

更新于: 2020 年 11 月 23 日

900 次浏览

开启你的 职业

完成课程并获得认证

马上开始
广告
© . All rights reserved.