繁体   English   中英

将一行文本转换为json格式

[英]Make line of text into json format

我有很多公司名称都是文字,但是我想这样格式化它们:

{
  "permalink": "3dplusme",
  "latitude": "",
  "longitude": ""
},
{
  "permalink": "3point5-com",
  "latitude": "",
  "longitude": ""
}

我有300家公司,只是这样的文字:

3dplusme
3point5-com
accessdata
acticut-international
adaptive-computing
airvend
...etc

我正在寻找一些正则表达式将为我做到这一点。 我正在尝试解决问题,但是任何帮助都会很棒! 谢谢!

PS:方括号后面的逗号可能会弄乱公司的姓氏,但没关系,因为我可以手动对其进行修复。 我基本上只是想要一些帮助,所以我不必手动进行。 谢谢! :)

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

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

(.*)

工作演示

检查替代部分

在此处输入图片说明

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

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));

JSFiddle演示

如果您真的想使用正则表达式,则可以使用以下代码: 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:""});
}

这是JS Fiddle

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

在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字符串,并将公司名称替换​​为变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM