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

时间:2019-02-19 11:49:32

标签: javascript json

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

{
    number: 1024
}

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

{
    number: 0x400
}

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

2 个答案:

答案 0 :(得分:1)

您可以使用time.sleep和您的号码。

.toString(16)

答案 1 :(得分:1)

您可以使用replacer中的JSON.stringify

替换器得到两个参数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
}))