返回介绍

solution / 2600-2699 / 2633.Convert Object to JSON String / README

发布于 2024-06-17 01:03:01 字数 2195 浏览 0 评论 0 收藏 0

2633. 将对象转换为 JSON 字符串

English Version

题目描述

现给定一个值,返回该值的有效 JSON 字符串。你可以假设这个值只包括字符串、整数、数组、对象、布尔值和 null。返回的字符串不能包含额外的空格。键的返回顺序应该与 Object.keys() 的顺序相同。

请你在不使用内置方法 JSON.stringify 的前提下解决这个问题。

 

示例 1:

输入:object = {"y":1,"x":2}
输出:{"y":1,"x":2}
解释:
返回该对象的 JSON 表示形式。
注意,键的返回顺序应该与 Object.keys() 的顺序相同。

示例 2:

输入:object = {"a":"str","b":-12,"c":true,"d":null}
输出:{"a":"str","b":-12,"c":true,"d":null}
解释:
JSON 的基本类型是字符串、数字型、布尔值和 null。

示例 3:

输入:object = {"key":{"a":1,"b":[{},null,"Hello"]}}
输出:{"key":{"a":1,"b":[{},null,"Hello"]}}
解释:
对象和数组可以包括其他对象和数组。

示例 4:

输入:object = true
输出:true
解释:
基本类型是有效的输入

 

提示:

  • value 是一个有效的 JSON 值
  • 1 <= JSON.stringify(object).length <= 105
  • maxNestingLevel <= 1000
  • 所有字符串只包含字母数字字符

解法

方法一

function jsonStringify(object: any): string {
  if (object === null) {
    return 'null';
  }
  if (typeof object === 'string') {
    return `"${object}"`;
  }
  if (typeof object === 'number' || typeof object === 'boolean') {
    return object.toString();
  }
  if (Array.isArray(object)) {
    return `[${object.map(jsonStringify).join(',')}]`;
  }
  if (typeof object === 'object') {
    return `{${Object.entries(object)
      .map(([key, value]) => `${jsonStringify(key)}:${jsonStringify(value)}`)
      .join(',')}}`;
  }
  return '';
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文