1. 程式人生 > >js-linq.js 從json字串中按條件查詢資料

js-linq.js 從json字串中按條件查詢資料

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.html
http://neue.cc/reference.htm