首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Stringify和替换用大写大写的属性名称对JSON对象进行字符串化

使用Stringify和替换用大写大写的属性名称对JSON对象进行字符串化
EN

Stack Overflow用户
提问于 2019-03-16 11:41:26
回答 2查看 2.1K关注 0票数 0

我必须完成这个函数,我如何才能用其大写的相应名称替换属性的名称。

代码语言:javascript
运行
复制
function stringify(v){

  function replacer(k,v){
    // to be completed
  }

  return JSON.stringify(v,replacer)
}

console.log(stringify(JSON.parse(process.argv[2])))

例如,命令:

节点json_upper_case.js‘{“城市”:“米兰”、“空气质量”:“红色”、“温度”:10}、{“空气质量”:“黄色”、“温度”:20、“海况”:3、“城市”:“热那瓦”}’

预期将打印以下输出:

{“城市”:“米兰”、“空气质量”:“红色”、“温度”:10}、{“空气质量”:“黄色”、“温度”:20、“海况”:3、“城市”:“热那瓦”}

EN

回答 2

Stack Overflow用户

发布于 2019-03-16 11:54:30

简单的Array.prototype.map()和一些动态属性名称访问一起完成了以下工作:

代码语言:javascript
运行
复制
let json = `[{
  "city": "Milano",
  "Air Quality": "red",
  "Temperature": 10
}, {
  "air quality": "yellow",
  "Temperature": 20,
  "Sea conditions": 3,
  "City": "Genova"
}]`

function keysToUppercase(j) {
  if (typeof j === 'string') { // so it works for javascript arrays as well
    try {
      j = JSON.parse(j);
    } catch (err) {
      console.error('Invalid JSON input');
      console.error(err);
    }
  }
  j = j.map(x => {
    for (let prop in x) {
      x[prop.toUpperCase()] = x[prop];
      delete x[prop];
    }
    return x;
  })
  return j;
}

console.log(keysToUppercase(json));

票数 0
EN

Stack Overflow用户

发布于 2019-03-16 11:52:00

parameter给出了几乎正确的答案,尝试修改给定的函数以满足您的需要:

代码语言:javascript
运行
复制
function replacer(key, value) {
  // Filtering out properties
  if (typeof value === 'string') {
    return undefined;
  }
  return value;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55196338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档