JSON.stringify自动求和数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON.stringify自动求和数相关的知识,希望对你有一定的参考价值。

我有一个文本文件,其中包含一个文本列表,它们代表不同的框大小:

3x11x24
13x5x19
1x9x27
24x8x21
6x8x17
etc...

使用node.js,我试图将它们放入对象内。

const fs = require('fs');

const quetion = () => {
    fs.readFile('./list.txt', (err, data) => {
        if (err) {
            console.log('error', err)
        }
    const rawData = JSON.parse(JSON.stringify(data));
    const rawList = rawData.data;
    console.log(rawList)
    })
}

quetion();

现在,当我将console.log(rawData)切换到CLI时,我得到此对象:

[
   51, 120,  49,  49, 120, 50,  52,  13,  10,  49, 51, 120,
   53, 120,  49,  57,  13, 10,  49, 120,  57, 120, 50,  55,
   13,  10,  50,  52, 120, 56, 120,  50,  49,  13, 10,  54,
  120,  56, 120,  49,  55, 13,  10,  49,  57, 120, 49,  56,
  120,  50,  50,  13,  10, 49,  48, 120,  57, 120, 49,  50,
   13,  10,  49,  50, 120, 50, 120,  53,  13,  10, 50,  54,
  120,  54, 120,  49,  49, 13,  10,  57, 120,  50, 51, 120,
   49,  53,  13,  10,  49, 50, 120,  56, 120,  49, 55,  13,
   10,  49,  51, 120,
  ... 9010 more items
]

这些是sums,它已根据数字方程式自动计算出,并由JSON.stringify完成。如何在默认情况下阻止JSON.stringify进行这些计算,以使方程式可以作为简单字符串包含在对象中?

答案
//Replace this
const rawData = JSON.parse(JSON.stringify(data));
const rawList = rawData.data;
console.log(rawList)

//With this
const list = data.toString().split("
").filter(e=>e);
console.log(list)

规划

由于文件格式不是json格式,因此您无需对文件内容执行任何json操作。

您需要做的是

  1. 通过.toString()将缓冲区转换为字符串
  2. 在换行 处分割成一个数组
  3. [.filter空行(如果有的话)]

以上是关于JSON.stringify自动求和数的主要内容,如果未能解决你的问题,请参考以下文章

IE8中JSON.stringify方法对自动转换unicode字符的解决方案

JSON.stringify() :

parseInt与JSON.stringify用法

JSON.stringify 抛出 RangeError: Invalid string length for large objects

JS JSON.stringify 详解

node 片段