且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

JSON.stringify,更改密钥的大小写

更新时间:2022-01-17 22:28:34

你可以使用JSON替换器在写入之前切换键。

You can use a JSON replacer to switch keys before writing.

JSON.stringify(myVal, function (key, value) {
  if (value && typeof value === 'object') {
    var replacement = {};
    for (var k in value) {
      if (Object.hasOwnProperty.call(value, k)) {
        replacement[k && k.charAt(0).toLowerCase() + k.substring(1)] = value[k];
      }
    }
    return replacement;
  }
  return value;
});

相反,你可以使用JSON reviver。

For the opposite, you can use a JSON reviver.

JSON.parse(text, function (key, value) {
    if (value && typeof value === 'object')
      for (var k in value) {
        if (/^[A-Z]/.test(k) && Object.hasOwnProperty.call(value, k)) {
          value[k.charAt(0).toLowerCase() + k.substring(1)] = value[k];
          delete value[k];
        }
      }
      return value;
    });

第二个可选参数是一个函数,调用每个值作为解析的一部分创建或每个即将写的价值。这些实现简单地遍历键和小写的任何具有大写字母的字母的第一个字母。

The second optional argument is a function that is called with every value created as part of the parsing or every value about to be written. These implementations simply iterate over keys and lower-cases the first letter of any that have an upper-case letter.

http://json.org/js.html


可选的reviver参数是一个函数,将在最终结果的每个级别为每个键和值调用。每个值都将被reviver函数的结果替换。这可用于将通用对象重构为伪类的实例,或将日期字符串转换为Date对象。

The optional reviver parameter is a function that will be called for every key and value at every level of the final result. Each value will be replaced by the result of the reviver function. This can be used to reform generic objects into instances of pseudoclasses, or to transform date strings into Date objects.

stringifier方法可以采用可选的replacer函数。它将在结构中的每个值上的toJSON方法(如果有)之后调用。它将作为参数传递每个键和值,并且这将绑定到持有该键的对象。返回的值将被字符串化。

The stringifier method can take an optional replacer function. It will be called after the toJSON method (if there is one) on each of the values in the structure. It will be passed each key and value as parameters, and this will be bound to object holding the key. The value returned will be stringified.