使用某些列过滤JSON数据,然后再次使用json格式创建数据 [英] Filter JSON data with some column and again create the data with json format

查看:92
本文介绍了使用某些列过滤JSON数据,然后再次使用json格式创建数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我有以下json数据。

我想使用url和yyyy_mm列进行过滤并创建json格式的新数据。



i这里有2个要求: -

1)。使用网址列过滤,假设我将网址作为http://google.com传递,那么它应该返回包含google.com的所有数据。



2)。使用url和yyyy_mm列过滤。所以在这种情况下应该返回任何匹配的行。

请注意: - 它应该返回我json对象。





 var tempData = [{url:http://google.com,yyyy_mm:2017-12,技能: C#,count:3},{url:http://google.com,yyyy_mm:2017-11,技能:F#,count:4} 
{url:http://google.com,yyyy_mm:2017-10,技能:asp.net,count:4},{url :yahoo.com,yyyy_mm:2017-12,技能:vb.net,count:10},
{url:yahoo.com, yyyy_mm:2017-11,技能:vb.net,计数:5},
{url:yahoo.com,yyyy_mm:2017-11 ,技能:vb.net,计数:6},
{url:yahoo.com,yyyy_mm:2017-11,技能:vb。 net,count:10},
{url:yahoo.com,yyyy_mm:2017-10,技能:vb.net,count:11 },
{url:yahoo.com,yyyy_mm:2017-10,技能:json,count:100}]

< br $>


先谢谢!!!!!



我尝试过:



我尝试使用$ .grep但没有取得任何成果。在某些情况下,$ .grep无效。

我正在使用Node.JS并动态创建html标签并显示数据。

解决方案

.grep但没有取得任何成果。在某些情况下


.grep无效。

我正在使用Node.JS并动态创建html标签并显示数据。


尝试



 var tempData = [{url:http://google.com,yyyy_mm: 2017-12,技能:C#,计数:3},
{url:http://google.com,yyyy_mm:2017-11, 技能:F#,计数:4},
{url:http://google.com,yyyy_mm:2017-10,技能:asp .net,count:4},
{url:yahoo.com,yyyy_mm:2017-12,技能:vb.net,count: 10},
{url:yahoo.com,yyyy_mm:2017-11,技能:vb.net,count:5},
{ url:yahoo.com,yyyy_mm:2017-11,技能:vb.net,count:6},
{url:yahoo.com ,yyyy_mm:2017-11,技能:vb.net,count:10},
{url:yahoo.com,yyyy_mm:2017 -10,技能:vb.net,count:11},
{url:yahoo.com,yyyy_mm :2017-10,技能:json,count:100}]


函数过滤器(数据,网址,日期){
var result = [];
if(url)
result = data.filter(function(item){return item.url == url});
if(date)
result = result.filter(function(item){return item.yyyy_mm == date});
返回结果;
}

var data1 = filter(tempData,'yahoo.com');
var data2 = filter(tempData,'yahoo.com','2017-10');
调试器





参考 JavaScript数组过滤器()方法 [ ^ ]


Hi All,

I have below json data.
I want to filter using url and yyyy_mm column and create the new data in json format.

i have 2 requirements here:-
1). filter using url column, suppose if i pass url as http://google.com then it should return me all data which contains google.com.

2). filter using url and yyyy_mm column. So in this case whatever matching rows should be returned.
Please note that :- it should return me json object.


var tempData =[{"url":"http://google.com","yyyy_mm":"2017-12","skills":"C#","count":3},                    {"url":"http://google.com","yyyy_mm":"2017-11","skills":"F#","count":4}
{"url":"http://google.com","yyyy_mm":"2017-10","skills":"asp.net","count":4},               {"url":"yahoo.com","yyyy_mm":"2017-12","skills":"vb.net","count":10},
{"url":"yahoo.com","yyyy_mm":"2017-11","skills":"vb.net","count":5},
{"url":"yahoo.com","yyyy_mm":"2017-11","skills":"vb.net","count":6},
{"url":"yahoo.com","yyyy_mm":"2017-11","skills":"vb.net","count":10},
{"url":"yahoo.com","yyyy_mm":"2017-10","skills":"vb.net","count":11},
{"url":"yahoo.com","yyyy_mm":"2017-10","skills":"json","count":100}]



Thanks in Advance!!!!!

What I have tried:

I tried using $.grep but did not achieve anything. In some cases $.grep is not working.
I am using Node.JS and creating html tags dynamically and showing data.

解决方案

.grep but did not achieve anything. In some cases


.grep is not working.
I am using Node.JS and creating html tags dynamically and showing data.


try

var tempData = [{ "url": "http://google.com", "yyyy_mm": "2017-12", "skills": "C#", "count": 3 },
           { "url": "http://google.com", "yyyy_mm": "2017-11", "skills": "F#", "count": 4 },
       { "url": "http://google.com", "yyyy_mm": "2017-10", "skills": "asp.net", "count": 4 },
       { "url": "yahoo.com", "yyyy_mm": "2017-12", "skills": "vb.net", "count": 10 },
       { "url": "yahoo.com", "yyyy_mm": "2017-11", "skills": "vb.net", "count": 5 },
       { "url": "yahoo.com", "yyyy_mm": "2017-11", "skills": "vb.net", "count": 6 },
       { "url": "yahoo.com", "yyyy_mm": "2017-11", "skills": "vb.net", "count": 10 },
       { "url": "yahoo.com", "yyyy_mm": "2017-10", "skills": "vb.net", "count": 11 },
       { "url": "yahoo.com", "yyyy_mm": "2017-10", "skills": "json", "count": 100 }]


       function filter(data, url, date) {
           var result = [];
           if (url)
               result = data.filter(function (item) { return item.url == url });
           if (date)
               result = result.filter(function (item) { return item.yyyy_mm == date });
           return result;
       }

       var data1 = filter(tempData, 'yahoo.com');
       var data2 = filter(tempData, 'yahoo.com', '2017-10');
       debugger



refer JavaScript Array filter() Method[^]


这篇关于使用某些列过滤JSON数据,然后再次使用json格式创建数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆