使用Node.js更改JSON内容字段类型

使用Node.js更改JSON内容字段类型,node.js,json,web-crawler,Node.js,Json,Web Crawler,我使用第三方爬网工具从网站上爬网了一些内容,爬网后我成功地获得了一个.json文件。我的json内容如下所示: { "name": "Mi Band 3 (Black)", "price": "₹ 1,899.00", "rating_count": "22,438", "MRP": "₹ 2,199.00", "saved_amount": "₹ 300.00 (14%)" } 有很多这样的产品被爬网,你可以看到price,MRP和rating\u co

我使用第三方爬网工具从网站上爬网了一些内容,爬网后我成功地获得了一个
.json
文件。我的
json
内容如下所示:

  {
   "name": "Mi Band 3 (Black)",
   "price": "₹ 1,899.00",
   "rating_count": "22,438",
   "MRP": "₹ 2,199.00",
   "saved_amount": "₹ 300.00 (14%)"
  }
有很多这样的产品被爬网,你可以看到
price
MRP
rating\u count
都是
String
类型,我想更改它并制作数字类型,我还想迭代
price
rating\u count
,&
MRP
字段以删除不需要的字符。我想我可以用
Node.js
来做,但是我是一个脚本语言的新手,包括
Node.js
,在检查了一些
Node.js
基础知识之后,我已经用下面的代码阅读了
.json
文件的内容,并完成了它

var fs = require('fs');

 fs.readFile('run_results.json','utf8', function (err, data) {
     if (err) throw err;
     console.log('Data here =>', data);
 });

但是当我搜索完后,我找不到任何针对我的案例的特定解决方案,请给出一些提示以完成我的任务,谢谢。

我想你有一个对象数组

const extractNumber = value => parseFloat(value.replace(/[^0-9.]/g, '')); // replace all symbols except number and decimal point, then parse it to int

const items = JSON.parse(data);

const result = items.map(item => ({
  ...item,
  price: extractNumber(item.price),
  rating_count: extractNumber(item.rating_count),
  MRP: extractNumber(item.MRP)
}));

您可以将转换函数作为参数传递,以将数字字符串转换为数字:

var fs = require('fs');

var numericKeys = ["price", "rating_count", "MRP"];

fs.readFile('run_results.json','utf8', function (err, data) {
  if (err) throw err;
  var results = JSON.parse(data, function(key, value) {
    return (numericKeys.indexOf(key) !== -1)
      ? parseFloat(value.replace(/[^0-9.]/g, ''))
      : value;
  });

  console.log(results);
});

实际上,一旦你在数据中得到了一些东西,它就是字符串操作,只是把它当作字符串来处理,然后继续玩。首先你需要将JSON转换成一个对象:
const obj=JSON.parse(data)。现在您可以更改其内容:
obj.rating\u count=parseInt(obj.rating\u count)
您不能在
上使用
parseInt
“₹ 1899.00“
parseInt(“₹ 1899.00“
NaN
。首先从字符串中删除除小数点以外的所有非数字。它是一个对象;对象没有
.map()。您的代码创建了一个错误:
items.map不是一个函数
只有数组具有
.map()
方法,但
数据
是一个对象。我的代码不可运行,这是如何映射所述对象集合的示例