Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将文本行转换为json格式_Javascript_Regex_Json - Fatal编程技术网

Javascript 将文本行转换为json格式

Javascript 将文本行转换为json格式,javascript,regex,json,Javascript,Regex,Json,我有很多公司名称都是文本,但我想将其格式如下: { "permalink": "3dplusme", "latitude": "", "longitude": "" }, { "permalink": "3point5-com", "latitude": "", "longitude": "" } 3dplusme 3point5-com accessdata acticut-international adaptive-computing airvend ...etc

我有很多公司名称都是文本,但我想将其格式如下:

{
  "permalink": "3dplusme",
  "latitude": "",
  "longitude": ""
},
{
  "permalink": "3point5-com",
  "latitude": "",
  "longitude": ""
}
3dplusme
3point5-com
accessdata
acticut-international
adaptive-computing
airvend
...etc
(.*)
我有300家公司的文字如下:

{
  "permalink": "3dplusme",
  "latitude": "",
  "longitude": ""
},
{
  "permalink": "3point5-com",
  "latitude": "",
  "longitude": ""
}
3dplusme
3point5-com
accessdata
acticut-international
adaptive-computing
airvend
...etc
(.*)
我正在寻找一些正则表达式,将为我做到这一点。我正在想办法,但任何帮助都会很好!谢谢大家!

括号后的逗号可能会弄乱公司的姓氏,但这并不重要,因为我可以手动修复它。我基本上只是想得到一些帮助,这样我就不必手动操作了。谢谢!:)


编辑:谢谢大家的帮助!!你们都帮了我。谢谢

如果每一行都应该是permalink属性,您可以拆分新行字符上的字符串并创建一个数组。然后使用该方法创建新的数据数组

var lines = variableHoldingText.split("\n");
var data = lines.map(function(item){
   return {permalink:item,latitude:"",longitude:""};
});

console.log(data);
//use JSON.stringify to get a json string
console.log(JSON.stringify(data));

如果假设每一行都是permalink属性,则可以拆分新行字符上的字符串并创建一个数组。然后使用该方法创建新的数据数组

var lines = variableHoldingText.split("\n");
var data = lines.map(function(item){
   return {permalink:item,latitude:"",longitude:""};
});

console.log(data);
//use JSON.stringify to get a json string
console.log(JSON.stringify(data));

您可以使用非常简单的正则表达式,如下所示:

{
  "permalink": "3dplusme",
  "latitude": "",
  "longitude": ""
},
{
  "permalink": "3point5-com",
  "latitude": "",
  "longitude": ""
}
3dplusme
3point5-com
accessdata
acticut-international
adaptive-computing
airvend
...etc
(.*)

检查替换部分


您可以使用非常简单的正则表达式,如下所示:

{
  "permalink": "3dplusme",
  "latitude": "",
  "longitude": ""
},
{
  "permalink": "3point5-com",
  "latitude": "",
  "longitude": ""
}
3dplusme
3point5-com
accessdata
acticut-international
adaptive-computing
airvend
...etc
(.*)

检查替换部分


如果您真的想使用正则表达式,可以使用以下命令:
var re=/([\s\s]*?)\n/gm

var myJson=[];
var str=$.trim($('#text').text());
var re =/([\s\S]*?)\n/gm;
var match;
while (match = re.exec(str)) {
    myJson.push({permalink:match[1],latitude:"",longitude:""});
}

以下是。

如果您真的想使用正则表达式,可以使用以下命令:
var re=/([\s\s]*?)\n/gm

var myJson=[];
var str=$.trim($('#text').text());
var re =/([\s\S]*?)\n/gm;
var match;
while (match = re.exec(str)) {
    myJson.push({permalink:match[1],latitude:"",longitude:""});
}

下面是一个例子。

您要寻找的不是正则表达式本身,而是使用正则表达式的替换

在Vim中

:%s/.*/{\r\t"permalink": "&",\r\t"latitude": "",\r\t"longitude": ""\r},/
我不做JavaScript,但这就是我想到的。将文件转换为字符串,然后:

var mystring = "a\nb\nc\n"
console.log(mystring.replace(/(.*)\n/mg , "{\n\t\"permalink\": \"$1\",\n\t\"latitude\": \"\",\n\t\"longitude\": \"\"\n}\n"));

或者,您可以逐行遍历文件,只需打印JSON字符串,并将中替换的公司名称作为变量。

您要查找的不是正则表达式本身,而是使用正则表达式的替换

在Vim中

:%s/.*/{\r\t"permalink": "&",\r\t"latitude": "",\r\t"longitude": ""\r},/
我不做JavaScript,但这就是我想到的。将文件转换为字符串,然后:

var mystring = "a\nb\nc\n"
console.log(mystring.replace(/(.*)\n/mg , "{\n\t\"permalink\": \"$1\",\n\t\"latitude\": \"\",\n\t\"longitude\": \"\"\n}\n"));

或者,您可以逐行遍历该文件,只需打印JSON字符串,并将中替换的公司名称作为变量。

每行是否都应该是
permalink
属性?这是一个包含所有这些名称的文本文件?是的。它是一个包含所有这些名称的文本文件,它们分别位于一行中。是@PatrickEvans抱歉,我想澄清的是纬度和经线是空的,永久线是唯一需要填写的东西。每一行都应该是
permalink
属性吗?这是一个包含所有这些名称的文本文件?是的。它是一个包含所有这些名称的文本文件,它们分别位于一行中。是的@PatrickEvans抱歉,我的意思是澄清纬度和经线是空白的,永久线是唯一需要填写的东西。