javascript - 使用 Javascript 将 json 中的数字字符串化为十六进制(或其他)格式

标签 javascript json

是否有使用 JSON.stringify 将数字字符串化为十六进制格式的简单方法? 例如,如果我有一个 JSON 结构:

{
    number: 1024
}

在这种情况下,我希望 JSON 字符串输出看起来像

{
    number: 0x400
}

JSON.stringify 始终以十进制格式(基数 10)返回数字。

最佳答案

您可以使用 replacerJSON.stringify

replacer 得到两个参数 keyvalue 被字符串化。在此函数中,因为您想将数字类型从十进制更改为十六进制,所以我们检查类型是否为数字,我们使用 toString() 基数为 16 的方法将其转换为十六进制如果不是,我们直接返回值而不做任何更改。

const obj = { num1:1024,num2:1025,num3:1026,num4:1027 }

console.log(JSON.stringify(obj, (key, value) => {
  if( typeof value === 'number'){
    return '0x' + value.toString(16)
  }
  return value
}))

关于javascript - 使用 Javascript 将 json 中的数字字符串化为十六进制(或其他)格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54765652/

相关文章:

javascript - 如何使用 typescript 处理 json 对象

javascript - Firefox 警告消息

json - Elasticsearch-批量计算新属性

json - 发出获取请求时出错以及如何在接收到数据后显示数据

python - 如何在 Django 中使用 ContentType 外键上的 get_by_natural_key() 加载数据装置?

javascript - 在带有 javascript 原型(prototype)对象的页面上使用两个或多个图像

javascript - 存储密码以登录到 3rd 方 API

c# - 我的 Web API C#.net 服务器无法反序列化 JSON 对象

javascript - 使用/jquery 测量 javascript 中大型 json 的下载进度

javascript - 当我们可以使用简单的 return 语句时,为什么要使用函数表达式