【问题标题】:Modifying the output provided by JSON.stringify in some particular way以某种特定方式修改 JSON.stringify 提供的输出
【发布时间】:2020-06-10 22:20:03
【问题描述】:

我不熟悉 javascript 代码,但由于某些原因,我正在调整 github 上的一些 js 文件。

源代码的其中一行是

JSON.stringify(a[2])

我得到的一些输出示例(对于前面的代码)是

{"x":1,"y":1}

{"x":1,"y":1,"z":2}

我想修改那行源代码以获得类似的输出

{(x,1),(y,1)}

{(x,1),(y,1),(z,2)}

而不是我得到的那些。

关于我可以使用哪些代码来获得此类输出的任何建议?

【问题讨论】:

  • 你想要的输出似乎不是有效的 Javascript 代码,你只想要字符串吗?在任何情况下,您都必须编写一些代码来实现该格式,而 Stackoverflow 不是一个代码编写服务,您应该先自己尝试一些事情,包括进行必要的研究,可能是关于 Javascript 对象。
  • 可以使用 JavaScript 对象和数组方法手动组合所需的输出字符串。但是,为什么需要这种奇怪的格式?对我来说,这听起来像是xy problem。 (不,JSON.stringify 创建 JSON,并且只创建 JSON)
  • @Dexygen:你说得对,我只对字符串感兴趣,但你说我要求编写代码服务是错误的。我只是在寻求建议,例如,如果有人能告诉我哪些是在 js 文件中操作(主要是替换)字符串的命令(现在我不知道要查找什么),那将是受欢迎的。在 bash 中,我会知道如何使用简单的命令行使用“sed”命令来完成它,但是在 js 文件中,我完全不知道在哪里寻找。有什么建议吗?

标签: javascript json stringify


【解决方案1】:

首先你必须阅读 JavaScript 基础知识并且你在谈论对象,在 JavaScript 中,几乎“一切”都是一个对象。

  1. 布尔值可以是对象(如果使用 new 关键字定义)
  2. 数字可以是对象(如果使用 new 关键字定义)
  3. 字符串可以是对象(如果使用 new 关键字定义)
  4. 日期总是对象
  5. 数学总是对象
  6. 正则表达式始终是对象
  7. 数组总是对象
  8. 函数始终是对象
  9. 对象永远是对象
  10. 除原语外,所有 JavaScript 值都是对象。

对象也是变量。但是对象可以包含许多值。

值被写成名称:值对(名称和值用冒号分隔)。

示例

var person = {x:10, y:20, z:50};

像打印一样

var propName = JSON.stringify(a[2]);

for( propName in nyc) {
    propValue = nyc[propName]

    console.log('('+propName+','+propValue+')');
}

【讨论】:

    【解决方案2】:

    {(x,1),(y,1)} 无效但[["x",1],["y",1]] 有效,您可以通过以下方式获取:

    var arr = {"x":1,"y":1}
    var res = {};
    for(data in arr){
      res[data]=[data,arr[data]];
    }
    console.log(Object.values(res));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      相关资源
      最近更新 更多