【问题标题】:Make line of text into json format将一行文本转成json格式
【发布时间】:2014-10-16 20:43:11
【问题描述】:

我有很多公司名称都是文本,但我想将它们格式化为:

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

我有大约 300 家公司,它们只是这样的文字:

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

我正在寻找一些可以为我做到这一点的正则表达式。我试图弄清楚,但任何帮助都会很棒!谢谢!

PS:括号后面的逗号可能会弄乱最后的公司名称,但没关系,因为我可以手动修复它。我基本上只是想要一些帮助,所以我不必手动这样做。谢谢! :)

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

【问题讨论】:

  • 每一行都应该是permalink 属性吗?
  • 这是一个包含所有这些名称的文本文件?
  • 是的。它是一个包含所有这些名称的文本文件,它们都位于单独的行中。是的@PatrickEvans 抱歉,我的意思是要澄清纬度和经度是空白的,而永久链接是唯一需要填写的内容。

标签: javascript regex json


【解决方案1】:

你可以像这样使用一个非常简单的正则表达式:

(.*)

Working demo

检查替换部分

【讨论】:

    【解决方案2】:

    如果您真的想使用正则表达式,可以使用: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

    【讨论】:

      【解决方案3】:

      如果每一行都应该是永久链接属性,您可以在换行符上拆分字符串并创建一个数组。然后使用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 Demo

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-08
          • 1970-01-01
          • 2017-10-10
          • 1970-01-01
          • 1970-01-01
          • 2021-03-07
          相关资源
          最近更新 更多