js-linq.js 從json字串中按條件查詢資料
阿新 • • 發佈:2019-02-09
Linq.js作為js的一大框架還是蠻強大的。因為要從json物件中提取出自己需要的資料資訊,同事推薦了linq.js。真心不錯,就和sql語句一樣根據自己條件進行查詢資料。不過百度這方面的資料有點少。
匯入的js:
<script src="static/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript" src="static/linq/jquery.linq-vsdoc.js"></script>
<script type="text/javascript" src="static/linq/jquery.linq.js"></script>
<script type="text/javascript" src="static/linq/jquery.linq.min.js"></script>
<script type="text/javascript" src="static/linq/linq.js"></script>
<script type="text/javascript" src="static/linq/linq.min.js"></script>
linq.js下載地址:http://download.csdn.net/detail/u013147600/9113909
頁面中的javascript:
<span style="font-size:14px;"><script type="text/javascript"> //保留多少位小數 function fomatFloat(src,pos){ return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos); } $(document).ready(function() { //查詢條件和結果 var queryResult; //companyInfo是一個json格式的物件,parent.whole_year和parent.whole_company 都是變數,其中parent.whole_company的值會是一箇中文的字串,所以前面加了decodeURI()函式 把URI形式轉換成string格式。 queryResult= Enumerable.From(companyInfo) .Where("$.year =="+parent.whole_year+"& $.company== decodeURI('"+parent.whole_company+"')") //.Where("$.company== decodeURI('"+parent.whole_company+"')") .OrderBy("$.money") .Select("$.company + ','+$.year+','+$.name+',' + $.money") .ToArray(); for (num in queryResult) { var result= queryResult[num].split(','); var tr = "<tr><td>" + num +"</td> <td>" + result[0] + " </td> <td>" + result[1] + "</td><td>" + result[2] + "</td><td>" + fomatFloat(eval(result[3])/10000,2) +"</td></tr>"; $(".table").append(tr); } }); //查詢 function search() { var info = $("#info").attr("value"); var queryResult = Enumerable.From(companyInfo) .Where("$.year == "+info) .OrderBy("$.money") .Select("$.company + ','+$.year+','+$.name+',' + $.money") .ToArray(); //清空表格內容 $('.table tbody').empty(); for (num in queryResult) { var result= queryResult[num].split(','); var tr = "<tr><td>" + num +"</td> <td>" + result[0] + " </td> <td>" + result[1] + "</td><td>" + result[2] + "</td><td>" + fomatFloat(eval(result[3])/10000,2) +"</td></tr>"; $(".table").append(tr); } } </script></span>
資源網站:
linq.js - LINQ for JavaScript:http://linqjs.codeplex.com/ http://www.cnblogs.com/sword-successful/archive/2014/11/25/4120946.htmlhttp://neue.cc/reference.htm