我正在尝试将一个Java属性文件转换为键值对,以便在jQuery中使用。该属性文件发送以下信息:
company1=Google
company2=eBay
company3=Yahoo
And I want it in this form:
var obj = {
company1: Google,
company2: ebay,
company3: Yahoo
};
我将通过URL访问属性文件。
我正在尝试将一个Java属性文件转换为键值对,以便在jQuery中使用。该属性文件发送以下信息:
company1=Google
company2=eBay
company3=Yahoo
And I want it in this form:
var obj = {
company1: Google,
company2: ebay,
company3: Yahoo
};
var data = "company1=Google\ncompany2=eBay\ncompany3=Yahoo";
var formattedData = data
// split the data by line
.split("\n")
// split each row into key and property
.map(row => row.split("="))
// use reduce to assign key-value pairs to a new object
// using Array.prototype.reduce
.reduce((acc, [key, value]) => (acc[key] = value, acc), {});
var obj = formattedData;
console.log(obj);
如果您需要支持ES5,这篇文章可能会对您有所帮助:从数组创建对象
.reduce((acc, [key, value]) => (acc[key] = value, acc), {});
,这样既更短,也更快,因为它不会在循环的每个步骤中重新分配累加器。 - Jared Smith只需使用npm模块https://www.npmjs.com/package/properties
该模块实现了Java .properties规范,并添加了额外的功能,如ini节、变量(键引用)、命名空间、导入文件等等。
# file
compa = 1
compb = 2
nodejs:
var properties = require ("properties");
properties.parse ("file.properties", { path: true }, function (error, obj){
if (error) return console.error (error);
console.log (obj);
//{ compa : 1, compb : 2 }
});