Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marak/jslinq
Clean and simple port of Microsoft's LINQ to node.js (and the browser)
https://github.com/marak/jslinq
Last synced: 24 days ago
JSON representation
Clean and simple port of Microsoft's LINQ to node.js (and the browser)
- Host: GitHub
- URL: https://github.com/marak/jslinq
- Owner: Marak
- Created: 2010-05-04T16:14:11.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2011-05-19T01:58:50.000Z (over 13 years ago)
- Last Synced: 2024-04-14T00:28:23.004Z (7 months ago)
- Language: JavaScript
- Homepage: http://maraksquires.com/JSLINQ/
- Size: 154 KB
- Stars: 92
- Watchers: 5
- Forks: 15
- Open Issues: 4
-
Metadata Files:
- Readme: ReadMe.md
Awesome Lists containing this project
README
# this project is mostly un-maintained. i worked on this as an experiment to learn LINQ a bit better and get to write some node code. i might pick it back up later, but there are more active / better versions if you google around a bit.
#JSLINQ - Perform LINQ against JSON
##A pure JS implementation of Microsoft's [Language Integrated Query](http://en.wikipedia.org/wiki/Language_Integrated_Query) library
### works in the browser or in node.js (CommonJS)
(note: just because microsoft is evil, doesn't mean that this one little JS library doesn't kick ass)##basic examples
assume the following JSON data:
var sampleData = [
{
"ID": 1,
"FirstName": "Chris",
"LastName": "Pearson",
"BookIDs": [
1001,
1002,
1003
]
},
{
"ID": 2,
"FirstName": "Kate",
"LastName": "Johnson",
"BookIDs": [
2001,
2002,
2003
]
},
{
"ID": 3,
"FirstName": "Josh",
"LastName": "Sutherland",
"BookIDs": [
3001,
3002,
3003
]
},
{
"ID": 4,
"FirstName": "John",
"LastName": "Ronald",
"BookIDs": [
4001,
4002,
4003
]
},
{
"ID": 5,
"FirstName": "Steve",
"LastName": "Pinkerton",
"BookIDs": [
1001,
1002,
1003
]
},
{
"ID": 6,
"FirstName": "Katie",
"LastName": "Zimmerman",
"BookIDs": [
2001,
2002,
2003
]
},
{
"ID": 7,
"FirstName": "Dirk",
"LastName": "Anderson",
"BookIDs": [
3001,
3002,
3003
]
},
{
"ID": 8,
"FirstName": "Chris",
"LastName": "Stevenson",
"BookIDs": [
4001,
4002,
4003
]
},
{
"ID": 9,
"FirstName": "Bernard",
"LastName": "Sutherland",
"BookIDs": [
1001,
2002,
3003
]
},
{
"ID": 10,
"FirstName": "Kate",
"LastName": "Pinkerton",
"BookIDs": [
4001,
3002,
2003
]
}
];now that we have some JSON data to work with, we can perform LINQ statements on it.
###simple Select
var sample = JSLINQ(sampleData).
Select(function (item) {return item.FirstName;});output: {"items":["Chris","Kate","Josh","John","Steve","Katie","Dirk","Chris","Bernard","Kate"]}
###simple Select with OrderBy
var sample = JSLINQ(sampleData).
Select(function (item) {return item.FirstName;}).
OrderBy(function (item) {return item;});output: {"items":["Bernard","Chris","Chris","Dirk","John","Josh","Kate","Kate","Katie","Steve"]}
###simple Where
var sample = JSLINQ(sampleData).Where(function (item) {return item.FirstName == "Chris";});output: [
{"ID":1,"FirstName":"Chris","LastName":"Pearson","BookIDs":[1001,1002,1003]},
{"ID":8,"FirstName":"Chris","LastName":"Stevenson","BookIDs":[4001,4002,4003]}
]###For the Full JSLINQ Demo and API implementation goto @ [http://maraksquires.com/JSLINQ/](http://maraksquires.com/JSLINQ/)
##Original Project Home : [Codeplex Sucks](http://jslinq.codeplex.com/)