自己写的C#Json类使用与实例Word文档下载推荐.docx
- 文档编号:17027417
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:14
- 大小:45.12KB
自己写的C#Json类使用与实例Word文档下载推荐.docx
《自己写的C#Json类使用与实例Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《自己写的C#Json类使用与实例Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
"
+this.jsonName+"
:
+v+"
);
数值<
publicvoidAdd(intv)
+v.ToString()+"
浮点值<
publicvoidAdd(floatv)
publicvoidAdd(boolv)
+v.ToString().ToLower()+"
参数<
publicvoidAdd(stringn,stringv)
+n+"
publicvoidAdd(stringn,intv)
publicvoidAdd(stringn,floatv)
布尔值<
publicvoidAdd(stringn,boolv)
///建立片段Json
publicvoidBuildSection(){
sectionData.Add("
{"
+string.Join("
"
jsonData.ToArray())+"
}"
jsonData.Clear();
///输出Json
t"
(1|2)<
o"
(true|false)<
returns>
string<
/returns>
publicstringBuildJson(intt,boolo)
if(t==1)
this.jsonStr=string.Join("
jsonData.ToArray());
if(!
o)this.jsonStr=this.jsonStr+"
;
elseif(t==2)
this.jsonStr="
["
this.jsonStr+=string.Join("
sectionData.ToArray());
this.jsonStr+="
]"
if(!
returnthis.jsonStr;
}
下面我们来使用这个类(我的项目使用的是MVC开发,你们可以根据自己的程序进行更改):
///获取部门列表
publicActionResultDepartmentList()
stringtempStr="
intPage=Convert.ToInt32(Request["
Page"
]);
stringKeyword=Convert.ToString(Request["
Keyword"
intPageSize=20;
varQuery=fromtincontext.GT_Department
selectt;
string.IsNullOrEmpty(Keyword))
Query=Query.Where(p=>
p.DepartmentName.ToLower().Contains(Keyword.ToLower()));
Query=Query.OrderBy(p=>
p.OrderID).ThenByDescending(p=>
p.DepartmentID);
varlist=newPage<
GT_Department>
(Query,Page,PageSize);
list.ToList();
JsonClassjsonData=newJsonClass();
jsonData.Name("
myList"
JsonClassjsonResult=newJsonClass();
jsonResult.Name("
isNull"
JsonClassjsonPage=newJsonClass();
jsonPage.Name("
pageData"
if(list.Count>
0)
foreach(GT_Departmentiteminlist)
jsonData.Add("
DepartmentID"
item.DepartmentID.ToString());
DepartmentName"
item.DepartmentName);
jsonData.BuildSection();
tempStr+=jsonData.BuildJson(2,false);
jsonResult.Add(false);
else
jsonResult.Add(true);
tempStr+=jsonResult.BuildJson(1,false);
jsonPage.Add(Function.ShowPages(PageSize,Page,list.PageCount,list.AllCount,"
个"
"
部门"
true));
tempStr+=jsonPage.BuildJson(1,true);
ViewData["
Result"
]="
+tempStr+"
returnView("
这个例子是获取数据库中部门的列表,我们可以看到我里面一共实例化了3个JsonClass类。
分别是jsonData、jsonResult、jsonPage。
jsonData用来存放部门数据,jsonResult用来存放是否查询到了记录,jsonPage用来放分页信息。
其中用到了分页功能,我把分页这里的源码提供上来:
namespaceGTProject.Controllers
///分页类
typeparamname="
T"
集合<
/typeparam>
publicclassPage<
T>
:
List<
///索引页
publicintPageIndex{get;
///每页显示几条记录
publicintPageSize{get;
///一共几页
publicintPageCount{get;
///一共多少条记录
publicintAllCount{get;
///判断上一页
publicboolHasPrevious
get
returnPageIndex<
PageCount-1;
///判断下一页
publicboolHasNext
returnPageIndex>
0;
///翻页函数
source"
IQueryable数据<
pageindex"
索引页<
pagesize"
每页多少条<
publicPage(IQueryable<
source,intpageindex,intpagesize)
this.AllCount=source.Count();
this.PageIndex=pageindex;
this.PageSize=pagesize;
//总记录数与每页最大记录数求余
if(this.AllCount%this.PageSize==0)
this.PageCount=Convert.ToInt32(this.AllCount/this.PageSize);
this.PageCount=Convert.ToInt32(this.AllCount/this.PageSize+1);
if(this.PageIndex>
this.PageCount)this.PageIndex=this.PageCount;
if(this.PageIndex<
1)this.PageIndex=1;
varlist=source.Skip(this.PageSize*(this.PageIndex-1)).Take(this.PageSize);
this.AddRange(list);
下面的是调用的一个静态方法,来输出分页HTML代码:
usingSystem.IO;
usingSystem.Text;
usingGTProject.Models;
//我自己的数据库,需要换成你的
publicstaticclassFunction
///显示分页信息
PageSize"
PageIndex"
当前页<
PageCount"
总页数<
AllCount"
总计路数<
Unit"
记录单位<
ItemName"
记录名称<
Function"
翻页函数javascirpt<
JumpPageButton"
是否显示跳转按钮<
publicstaticstringShowPages(intPageSize,intPageIndex,intPageCount,intAllCount,stringUnit,stringItemName,boolJumpPageButton)
stringtempstr="
intjump=PageIndex+1;
tempstr+="
divclass='
page'
共<
b>
+AllCount+"
/b>
"
+Unit+ItemName+"
&
nbsp;
+PageSize+"
条/页&
页次:
strong>
fontcolor='
red'
+PageIndex+"
/font>
/"
+PageCount+"
/strong>
页&
if(PageIndex<
2)
a>
首页<
/a>
上一页<
ahref='
javascript:
goPage
(1)'
goPage("
+(PageIndex-1)+"
)'
if(PageIndex>
=PageCount)
下一页<
尾页<
jump=PageCount;
+(PageIndex+1)+"
<
inputid='
PageNow'
type='
hidden'
name='
value='
'
/>
if(JumpPageButton)
PageJump'
text'
pagejump'
+jump+"
class='
pagenum'
onclick='
PageJumpFun();
returnfalse;
跳转<
if(PageCount==1)
script>
functionPageJumpFun(){noticeMessage('
只有一页不能跳转!
}<
/script>
functionPageJumpFun(){goPage($('
#PageJump'
).val())}<
/div>
returntempstr;
至此用到的所有类与方法都提供出来了,下面我们来看一下输出结果:
[{"
1"
产品运营支撑中心"
},{"
3"
系统集成中心"
4"
321"
}],"
false,"
3<
个部门&
20<
0<
/1<
0'
1'
我在前台页面使用了Jquery来呈现,下面给出代码:
HTML部分:
divclass="
contentcontainer"
headingsaltheading"
h2>
部门列表<
/h2>
contentbox"
inputtype="
button"
value="
添加部门"
class="
btn"
onclick="
addData()"
/>
部门排序"
orderData()"
部门名称:
inputid="
type="
text"
查询"
goPage
(1)"
tablewidth="
100%"
id="
dataTable"
thead>
tr>
th>
部门名称<
/th>
操作<
inputname="
checkbox"
checkboxall"
/tr>
/thead>
tbodyid="
loopcontent"
/tbody>
/table>
extrabottom"
bulkactions"
删除"
confirmDelMessage('
你确定要删除选中的部门吗?
)"
div>
divid="
Pagination"
digg"
divstyle="
clear:
both;
Jquery部分:
$.ajax({
dataType:
'
json'
type:
POST"
url:
/AdminDepartment/DepartmentList"
data:
{Page:
Page,Keyword:
Keyword},
error:
function(XMLHttpRequest,textStatus){if(XMLHttpRequest.status==500){alert(XMLHttpRequest.responseText);
}},
timeout:
10000,
success:
function(data){
$("
#page-mask"
).fadeTo(200,0.0,fu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自己 Json 使用 实例