保存 json 文件时遇到困难
Difficulties in saving a json file
我有一个连接到 api 的函数,并为许多不同的项目提取 particle
、name
和 community_price
。它运行良好,但现在我希望它将数据保存在 json 文件中。它应该是这样的:
[
{
"particle": "xxx",
"name": "xxx",
"community_price": "xxx"
},
{
"particle": "xxx",
"name": "xxx",
"community_price": "xxx"
},
{
"particle": "xxx",
"name": "xxx",
"community_price": "xxx"
}
]
我花了很多时间玩 fs.writeFileSync
但不幸的是 none 由于我对 js 的了解不足,我的尝试没有奏效。欢迎任何帮助,将选择最佳答案。提前致谢!
函数如下:
function get_community_price(){
let url = 'https://example.com/api/IGetPrices/v4?key=' + backpackkey;
var massive;
let quality = '5';
request({url:url, json:true}, function(err, res, body){
if (err) console.log(err);
massive = body.response.items;
console.log('recieved comminty prices')
for(let i = 0; i < data.length; i += 1){
let get_json = other.urltojson(data[i].ApiLink);
let particle = get_json.particle
let name = data[i].BuyLink;
name = name.replace(/(\/Tradable).*/, '');
name = name.replace(/.*(\/)/, '');
name = name.replace(/\%20/g, ' ');
name = name.replace(/\%27/g, '\'')
let community_price = massive[name].prices[quality].Tradable.Craftable[particle].value;
data[i].BuyPrice = community_price;
}
CreateOrders()
});
}
这是我认为应该的,但仍然不起作用。
function get_community_price(){
let url = 'https://example.com/api/IGetPrices/v4?key=' + backpackkey;
var massive;
let quality = '5';
request({url:url, json:true}, function(err, res, body){
if (err) console.log(err);
massive = body.response.items;
console.log('recieved comminty prices')
for(let i = 0; i < data.length; i += 1){
let get_json = other.urltojson(data[i].ApiLink);
let particle = get_json.particle
let name = data[i].BuyLink;
name = name.replace(/(\/Tradable).*/, '');
name = name.replace(/.*(\/)/, '');
name = name.replace(/\%20/g, ' ');
name = name.replace(/\%27/g, '\'')
let community_price = massive[name].prices[quality].Tradable.Craftable[particle].value;
data[i].BuyPrice = community_price;
var priceLog = [];
priceLog.push({particle, name, community_price});
}
fs.writeFileSync('./app/comPrice.json', JSON.stringify(priceLog, null, 4));
console.log('Fresh community price saved.');
CreateOrders()
});
}
按照 official documentation 说明 writeFileSync 可以这样使用:
const fs = require("fs");
const json = { /* Big object of whatever */ };
const path = "path/file.json";
fs.writeFileSync(path, JSON.stringify(json));
我在你的代码中看不到任何内容 fs.writeFileSync
,但我想这就是你想要做的。
我有一个连接到 api 的函数,并为许多不同的项目提取 particle
、name
和 community_price
。它运行良好,但现在我希望它将数据保存在 json 文件中。它应该是这样的:
[
{
"particle": "xxx",
"name": "xxx",
"community_price": "xxx"
},
{
"particle": "xxx",
"name": "xxx",
"community_price": "xxx"
},
{
"particle": "xxx",
"name": "xxx",
"community_price": "xxx"
}
]
我花了很多时间玩 fs.writeFileSync
但不幸的是 none 由于我对 js 的了解不足,我的尝试没有奏效。欢迎任何帮助,将选择最佳答案。提前致谢!
函数如下:
function get_community_price(){
let url = 'https://example.com/api/IGetPrices/v4?key=' + backpackkey;
var massive;
let quality = '5';
request({url:url, json:true}, function(err, res, body){
if (err) console.log(err);
massive = body.response.items;
console.log('recieved comminty prices')
for(let i = 0; i < data.length; i += 1){
let get_json = other.urltojson(data[i].ApiLink);
let particle = get_json.particle
let name = data[i].BuyLink;
name = name.replace(/(\/Tradable).*/, '');
name = name.replace(/.*(\/)/, '');
name = name.replace(/\%20/g, ' ');
name = name.replace(/\%27/g, '\'')
let community_price = massive[name].prices[quality].Tradable.Craftable[particle].value;
data[i].BuyPrice = community_price;
}
CreateOrders()
});
}
这是我认为应该的,但仍然不起作用。
function get_community_price(){
let url = 'https://example.com/api/IGetPrices/v4?key=' + backpackkey;
var massive;
let quality = '5';
request({url:url, json:true}, function(err, res, body){
if (err) console.log(err);
massive = body.response.items;
console.log('recieved comminty prices')
for(let i = 0; i < data.length; i += 1){
let get_json = other.urltojson(data[i].ApiLink);
let particle = get_json.particle
let name = data[i].BuyLink;
name = name.replace(/(\/Tradable).*/, '');
name = name.replace(/.*(\/)/, '');
name = name.replace(/\%20/g, ' ');
name = name.replace(/\%27/g, '\'')
let community_price = massive[name].prices[quality].Tradable.Craftable[particle].value;
data[i].BuyPrice = community_price;
var priceLog = [];
priceLog.push({particle, name, community_price});
}
fs.writeFileSync('./app/comPrice.json', JSON.stringify(priceLog, null, 4));
console.log('Fresh community price saved.');
CreateOrders()
});
}
按照 official documentation 说明 writeFileSync 可以这样使用:
const fs = require("fs");
const json = { /* Big object of whatever */ };
const path = "path/file.json";
fs.writeFileSync(path, JSON.stringify(json));
我在你的代码中看不到任何内容 fs.writeFileSync
,但我想这就是你想要做的。