如何查找此文件中列出的所有电子邮件并删除其他所有内容?

时间:2017-08-04 18:29:01

标签: json email

我的文件中填充了JSON格式的对象,其中包含数千名用户的电子邮件属性。

{  
   "object":"list",
   "read_only":{  

   },
   "full_access":{  
      "data":[  
         {  
            "id":"32923939",
            "platform_id":"12313",
            "name":"test",
            "email":"test@example.com",
            "created_date":"08 Feb 17 10:02 +0000"
         },
         {  
            "id":"135541",
            "platform_id":"1234",
            "name":"test",
            "email":"test@example.com",
            "created_date":"08 Feb 17 10:00 +0000"
         },
         {  
            "id":"484949383",
            "platform_id":"494948",
            "name":"test",
            "email":"test@example.com",
            "created_date":"08 Feb 17 08:46 +0000"
         },
         {  
            "id":"595033",
            "platform_id":"test",
            "name":"test",
            "email":"test@example.com",
            "created_date":"30 Sep 16 17:51 +0000"
         }
      ]
   },
   "never_logged_in":{  

   }
}

我面临的问题是某些对象格式不正确,因此我无法在代码中使用它们。我想知道是否有一种方法可以在文件中搜索字符串,"电子邮件:",然后是电子邮件地址,并删除其他所有内容。我觉得我可以使用正则表达式完成此操作,以检测电子邮件地址,但我不确定如何自己做。

有人可以提供任何见解或建议吗?

1 个答案:

答案 0 :(得分:0)

在Javascript中,你可以做类似的事情 -

var myJson = {"object":"list","read_only":{},"full_access":{"data":[{"id":"32923939","platform_id":"12313","name":"test","email":"test@example.com","created_date":"08 Feb 17 10:02 +0000"},{"id":"135541","platform_id":"1234","name":"test","email":"test@example.com","created_date":"08 Feb 17 10:00 +0000"},{"id":"484949383","platform_id":"494948","name":"test","email":"test@example.com","created_date":"08 Feb 17 08:46 +0000"},{"id":"595033","platform_id":"test","name":"test","email":"test@example.com","created_date":"30 Sep 16 17:51 +0000"}]},"never_logged_in":{}}
var result = myJson.full_access.data.filter(x=>x.email && x.email!="")
                                    .map(x=>x.email);
console.log(result);

它将检查data属性中的元素是否具有email.filter方法),然后在数组中映射出电子邮件ID。

这是一个JSFiddle link。检查控制台输出。

注意:如果您只想将其作为一次性活动,请将您收到的原始对象粘贴到小提琴中,然后从控制台复制result对象。
此外,您可以使用像JSONLint这样的linter来检查所有JSON的破坏位置。