2

我正在尝试将 java 属性文件转换为可以在 jquery 中使用的键值对。属性文件发送如下信息:

company1=Google
company2=eBay
company3=Yahoo

我想要这种形式:

var obj = {
 company1: Google,
 company2: ebay,
 company3: Yahoo
};

我将通过 URL 访问属性文件。

4

2 回答 2

4

假设您的文件完全按照您在此处粘贴的方式出现,我会这样处理它:

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 Create object from array ,这篇文章可能会有所帮助

于 2018-08-27T16:59:37.920 回答
1

只需使用 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 }
});
于 2018-08-27T14:55:08.010 回答