2633.将对象转换为JSON字符串
链接:2633.将对象转换为JSON字符串
难度:Medium
标签:
简介:现给定一个对象,返回该对象的有效 JSON 字符串。你可以假设这个对象只包括字符串、整数、数组、对象、布尔值和 null。返回的字符串不能包含额外的空格。键的返回顺序应该与 Object.keys() 的顺序相同。
题解 1 - typescript
- 编辑时间:2023-04-24
- 执行用时:104ms
- 内存消耗:64.6MB
- 编程语言:typescript
- 解法介绍:对对象递归查找,并判断是否是数组,对字符串加双引号。
function jsonStringify(object: any): string {
  const t = typeof object;
  if (t !== 'object' || object === null || object === undefined)
    return t === 'string' ? `"${object}"` : `${object}`;
  const isArr = Array.isArray(object);
  let str = '';
  str += isArr ? '[' : '{';
  str += Object.entries(object)
    .map(([k, v]) => {
      const isStr = typeof v === 'string';
      let str = '';
      if (!isArr) str += `"${k}":`;
      if (isStr) str += `"`;
      str += jsonStringify(v);
      if (isStr) str += `"`;
      return str;
    })
    .join(',');
  str += isArr ? ']' : '}';
  return str;
}