关于json的知识整理
一、什么是json
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法。类似 XML,但JSON 比 XML 更小、更快,更易解析。
JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
二、json语法规则
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
json名/值对:
“name”:"张三"
json对象(对象可以包含多个名称/值对)
{"name":"张三","sex":"男"}
json数组(数组可以包含多个对象)
{
"people": [
{ "name":"John" , "sex":"man" },
{ "name":"Anna" , "sex":"women" },
{ "name":"Peter" , "sex":"man" }
]
}
三、eval() 函数
JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
var obj = eval ("(" + txt + ")");
注意:必须把文本包围在括号中,这样才能避免语法错误。
四、具体示例
(1)后台拼接json
string xm = context.Request.QueryString["xm"].ToString();
string rqStr = "select id,rq,xq,sj from b_gh_zj where xm='" + xm + "' and thimg='开通' and rq>GETDATE() and xhsl>ghsl";
DataTable dt=DBUtility.SqlHelper.Query(rqStr).Tables[];
StringBuilder sbJson = new StringBuilder();
string strjson = "";
sbJson.Append("[");
if (dt.Rows.Count>)
{
foreach (DataRow dr in dt.Rows)
{
sbJson.Append("{id:" + dr["id"] + ",rq:'" + Convert.ToDateTime(dr["rq"]).ToString("yyyy-MM-dd") + "',xq:'" + dr["xq"] + "',sj:'" + dr["sj"] + "'},");
}
strjson = sbJson.ToString();
strjson = strjson.Substring(, strjson.Length - ) + "]";//去掉最后一个逗号;
context.Response.Write(strjson);
}
(2)前台解析json
var myobj = eval(res); //获取json对象
document.getElementById("ddlTime").options.length = ; //每一次先把之前的清空
document.getElementById("txtyyxq").value = "";
for (var i = ; i < myobj.length; i++) {
document.getElementById("ddlTime").options.add(new Option(myobj[i].rq + "--" + myobj[i].sj, myobj[i].id));
} //js动态为下拉框添加值 (text,value)
(3)后台解析json
读取到的json字符串(jsonArray)如下:
[{"id":"","da":""},{"id":"","da":"服务态度恶劣。"},{"id":"","da":""},{"id":"","da":""}]
解析代码如下:
[Serializable]
class User
{
public int id{get;set;}
public string da { get; set; }
}
JavaScriptSerializer json = new JavaScriptSerializer();
List<User> list = json.Deserialize<List<User>>(jsonArray);
if (list != null && list.Count > )
{
foreach (var item in list)
{
Response.Write(item.id+"------"+item.da); }
}
关于json的知识整理的更多相关文章
- JSON相关知识整理
JSON 全称:JavaScript Object Notation ,一种轻量级的数据交换格式 示例:{"name":"eric","age&q ...
- json相关知识
整理json相关知识: 1.for in 循环获取json中的键(key)与值(value) <!DOCTYPE html> <html lang="en"> ...
- js事件(Event)知识整理
事件(Event)知识整理,本文由网上资料整理而来,需要的朋友可以参考下 鼠标事件 鼠标移动到目标元素上的那一刻,首先触发mouseover 之后如果光标继续在元素上移动,则不断触发mousemo ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- Kali Linux渗透基础知识整理(二)漏洞扫描
Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...
- wifi基础知识整理
转自 :http://blog.chinaunix.net/uid-9525959-id-3326047.html WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总 ...
- 数据库知识整理<一>
关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数 ...
- 【转载】UML类图知识整理
原文:UML类图知识整理 UML类图 UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料. 这里简单整理 类之间的关系 泛化关系(generalization) 泛化(generalize ...
- Linux进程管理知识整理
Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) ...
随机推荐
- C#实现在CAD图纸中插入另一个DWG图块的代码
C#实现在CAD图纸中插入另一个DWG图块的代码 PromptPointResult ppr = ed.GetPoint("请选择插入点:"); Point3d pt = ppr. ...
- android sdk manager 无法更新
1.在C:\Windows\System32\drivers\etc找到Hosts文件用记事本打开,在最末尾添加如下代码,保存关闭: #Google主页203.208.46.146 www.googl ...
- tslib 移植问题与解决方法
问题一.执行脚本.提示出错,错误有"cann't exec aclocal" ,错误提示最多的是关于aclocal的问题,查资料显示这个文件是automake必备一个文件,好吧,那 ...
- Codevs 1231 最优布线问题
题目描述 Description 学校需要将n台计算机连接起来,不同的2台计算机之间的连接费用可能是不同的.为了节省费用,我们考虑采用间接数据传输结束,就是一台计算机可以间接地通过其他计算机实现和另外 ...
- 从源码看java中Integer的缓存问题
在开始详细的说明问题之前,我们先看一段代码 public static void compare1(){ Integer i1 = 127, i2 = 127, i3 = 128, i4 = 128; ...
- jQuery遮罩层的实现
遮罩层其实就是一个占据整个页面的半透明效果的页面元素,一般用div实现.页面中实现遮罩层,无非就是为了让用户只能操作弹出窗口的内容,而不允许操作弹出窗口外的内容. 在实现时,我使用了两个div,一个遮 ...
- HTML5 Shiv – 让该死的IE系列支持HTML5吧
HTML5能为我们做的事儿很多,最为可口的就是语义化标签的应用,如果你已经在Chrome或者其他支持HTML5的浏览器上用过它的牛x,那这篇文章对你一定有用,因为现在你也可以在IE上用到HTML5. ...
- jQuery插件css3动画模拟confirm弹窗
相比浏览器自带的alert.confirm,能力所及,我更喜欢所有的东西都是自定义:首先在head标签(当然喜欢其他地方自己看着办)内引入插件样式表和js.<link rel="sty ...
- PHP CI 查询条件大全
php CI 框架 this->db->where() 条件 PHP 5 版本 $this->db->where() 接受可选的第三个参数.如果你将它设置为 FALSE, Co ...
- liunx下vi命令详解
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...