JSON是什么 JSON怎么用
2011-11-22 18:03
204 查看
JSON是什么 JSON怎么用?
========================================================================================================
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。。
JSON的结构基于下面两点
1. "名称/值"对的集合不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表 (hash table),键列表(keyed list)等
2. 值的有序列表 多数语言中被理解为数组(array)
JSON使用:
JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的,好像有点拗口,我们还是用实例来说明。
这里假设我们需要创建一个 User对象,并具有以下属性
用户ID
用户名
用户 Email
您可以使用以下JSON形式来表示User对象:
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
然后如果把这一字符串赋予一个JavaScript 变量,那么就可以直接使用对象的任一属性了。
完整代码:
<script>
var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
alert(User.Name);
</script>
实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstName和LastName:
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"qq◎hotmail.com"}
完整代码:
<script>
var User = {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"};
alert(User.Name.FirstName);
</script>
现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。
下面代码演示了使 用JSON形式定义这个用户列表:
[
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
]
完整代码:
<script>
var UserList = [
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
];
alert(UserList[0].Name.FirstName);
</script>
事实上除了使用"."引用属性外,我们还可以使用下面语句:
alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]);
现在读者应该对JSON的使用有点认识 了,归纳为以下几点:
对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
字符串和数字的定义和C或Java基本一致。
下面用2个很好的实例做解释
===============================json 是什么 json怎么用 json实例 json源码===================
例1 sitebao里面的 ajax 获得时间格式,在前台动态的添加到下拉框的选项里
不需要自己定义json的数组格式
public String getTimeStyle(){
TimeStyleDAO timeStyleDAO = TimeStyleDAO.getInstance();
timeStyles = timeStyleDAO.getAllStringStyle();
System.out.println(timeStyles.size());
JSONArray obj=JSONArray.fromObject(timeStyles);
getResponse().setContentType("text;charset=UTF-8");
try {
getResponse().getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return NONE;
}
=======页面,获得后台传过来的json对象,遍历json数组,动态添加====
$.ajax({
url:"/sitebao62p/page_getTimeStyle.do?ajax=true",
cache:false,
data:data,
dataType:"text",
type:"POST",
success:function(data){
closeDIV("addModel");
openDIV("addProductModel");
data=eval_r(""+data+"");
$.each(data,function(index,item){
temp="<option value='"+item.id+"'>"+item.stringStyle+"</option>";
$("#producttimeStyleId").append(temp);
});
}
});
例2=================需要自己组装json数组格式。====================
try{
StringBuffer sb=new StringBuffer("[");
int length=OneNesType.size();
for (int i = 0; i <length; i++) {
Column model=(Column)OneNesType.get(i);
sb.append("{");
sb.append("'id':");
sb.append(""+model.getId()+",");
sb.append("'name':");
sb.append("'"+model.getName()+"'");
sb.append("},");
}
if(sb.lastIndexOf(",")>0){
sb=new StringBuffer(sb.substring(0,sb.lastIndexOf(",")));
}
sb.append("]");
System.out.println(sb.toString());
getResponse().setContentType("text;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
return null;
}catch(Exception e){
e.printStackTrace();
}
return NONE;
}
======================json 是什么 json怎么用 json实例 json源码===================
例1 sitebao里面的 ajax 获得时间格式,在前台动态的添加到下拉框的选项里
不需要自己定义json的数组格式============
public String getTimeStyle(){
TimeStyleDAO timeStyleDAO = TimeStyleDAO.getInstance();
timeStyles = timeStyleDAO.getAllStringStyle();
System.out.println(timeStyles.size());
JSONArray obj=JSONArray.fromObject(timeStyles);
getResponse().setContentType("text;charset=UTF-8");
try {
getResponse().getWriter().write(obj.toString());
} catch (IOException e) {
e.printStackTrace();
}
return NONE;
}
=======页面,获得后台传过来的json对象,便利json数组,动态添加====
$.ajax({
url:"/sitebao62p/page_getTimeStyle.do?ajax=true",
cache:false,
data:data,
dataType:"text",
type:"POST",
success:function(data){
closeDIV("addModel");
openDIV("addProductModel");
data=eval_r(""+data+"");
$.each(data,function(index,item){
temp="<option value='"+item.id+"'>"+item.stringStyle+"</option>";
$("#producttimeStyleId").append(temp);
});
}
});
例2==================需要自己组装json数组格式。==========================
try{
StringBuffer sb=new StringBuffer("[");
int length=OneNesType.size();
for (int i = 0; i <length; i++) {
Column model=(Column)OneNesType.get(i);
sb.append("{");
sb.append("'id':");
sb.append(""+model.getId()+",");
sb.append("'name':");
sb.append("'"+model.getName()+"'");
sb.append("},");
}
if(sb.lastIndexOf(",")>0){
sb=new StringBuffer(sb.substring(0,sb.lastIndexOf(",")));
}
sb.append("]");
System.out.println(sb.toString());
getResponse().setContentType("text;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
return null;
}catch(Exception e){
e.printStackTrace();
}
return NONE;
}
===============json 是什么 json怎么用 json实例 json源码============
对于单独的一个json串
public void getCategoryAjax(int catId,HttpServletResponse response){
Category c = new Category();
c = myCategoryService.getCategory(catId);
int uid = 1;
//如果我什么都不需要返回,则下面怎么写?比如删除的时候
//获得我的目录
List<Category> list = myCategoryService.myCategoryList(uid);
StringBuffer sb=new StringBuffer();
sb.append("{'catId':"+c.getCatId()+",'name':'"+c.getName()+"','description':'"+c.getDescription()+"'}");
//sb.append("]");
writerResponseRes(response, sb.toString());
}
js中的体现
function update_category(catId){
var catId = catId;
var name = "";
var description = "";
$.ajax({
url:"/iknowing/getCategoryAjax.html",
type:"POST",
dataType:"text",
data:'catId='+catId,
success:function(data){
data=eval_r("("+data+")");
name = data.name;
description = data.description;
$("#updateName").attr("value",name);
if(description!='undefined'){
$("#updateDescription").attr("value",description);
}
$("#updateCatId").attr("value",catId);
}
});
$('#updateDiv').dialog('open');
}
小结:
本文通过一个实例演示,初步了解了 JSON 的强大用途。可以归结如下:
JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
JSON 帮助分离了验证数据和逻辑。
JSON 帮助为 Web 应用程序提供了 Ajax 的本质。
=======================================================
JSON是什么 JSON怎么用?
http://blog.sina.com.cn/s/blog_64aedc270100lbjc.html
========================================================================================================
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。。
JSON的结构基于下面两点
1. "名称/值"对的集合不同语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表 (hash table),键列表(keyed list)等
2. 值的有序列表 多数语言中被理解为数组(array)
JSON使用:
JSON以一种特定的字符串形式来表示 JavaScript 对象。如果将具有这样一种形式的字符串赋给任意一个 JavaScript 变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的,好像有点拗口,我们还是用实例来说明。
这里假设我们需要创建一个 User对象,并具有以下属性
用户ID
用户名
用户 Email
您可以使用以下JSON形式来表示User对象:
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
然后如果把这一字符串赋予一个JavaScript 变量,那么就可以直接使用对象的任一属性了。
完整代码:
<script>
var User = {"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
alert(User.Name);
</script>
实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstName和LastName:
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"qq◎hotmail.com"}
完整代码:
<script>
var User = {"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"};
alert(User.Name.FirstName);
</script>
现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。
下面代码演示了使 用JSON形式定义这个用户列表:
[
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
]
完整代码:
<script>
var UserList = [
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"zhuleipro◎hotmail.com"},
{"UserID":12, "Name":{"FirstName":"Jeffrey","LastName":"Richter"}, "Email":"xxx◎xxx.com"},
{"UserID":13, "Name":{"FirstName":"Scott","LastName":"Gu"}, "Email":"xxx2◎xxx2.com"}
];
alert(UserList[0].Name.FirstName);
</script>
事实上除了使用"."引用属性外,我们还可以使用下面语句:
alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]);
现在读者应该对JSON的使用有点认识 了,归纳为以下几点:
对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
字符串和数字的定义和C或Java基本一致。
下面用2个很好的实例做解释
===============================json 是什么 json怎么用 json实例 json源码===================
例1 sitebao里面的 ajax 获得时间格式,在前台动态的添加到下拉框的选项里
不需要自己定义json的数组格式
public String getTimeStyle(){
TimeStyleDAO timeStyleDAO = TimeStyleDAO.getInstance();
timeStyles = timeStyleDAO.getAllStringStyle();
System.out.println(timeStyles.size());
JSONArray obj=JSONArray.fromObject(timeStyles);
getResponse().setContentType("text;charset=UTF-8");
try {
getResponse().getWriter().write(obj.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return NONE;
}
=======页面,获得后台传过来的json对象,遍历json数组,动态添加====
$.ajax({
url:"/sitebao62p/page_getTimeStyle.do?ajax=true",
cache:false,
data:data,
dataType:"text",
type:"POST",
success:function(data){
closeDIV("addModel");
openDIV("addProductModel");
data=eval_r(""+data+"");
$.each(data,function(index,item){
temp="<option value='"+item.id+"'>"+item.stringStyle+"</option>";
$("#producttimeStyleId").append(temp);
});
}
});
例2=================需要自己组装json数组格式。====================
try{
StringBuffer sb=new StringBuffer("[");
int length=OneNesType.size();
for (int i = 0; i <length; i++) {
Column model=(Column)OneNesType.get(i);
sb.append("{");
sb.append("'id':");
sb.append(""+model.getId()+",");
sb.append("'name':");
sb.append("'"+model.getName()+"'");
sb.append("},");
}
if(sb.lastIndexOf(",")>0){
sb=new StringBuffer(sb.substring(0,sb.lastIndexOf(",")));
}
sb.append("]");
System.out.println(sb.toString());
getResponse().setContentType("text;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
return null;
}catch(Exception e){
e.printStackTrace();
}
return NONE;
}
======================json 是什么 json怎么用 json实例 json源码===================
例1 sitebao里面的 ajax 获得时间格式,在前台动态的添加到下拉框的选项里
不需要自己定义json的数组格式============
public String getTimeStyle(){
TimeStyleDAO timeStyleDAO = TimeStyleDAO.getInstance();
timeStyles = timeStyleDAO.getAllStringStyle();
System.out.println(timeStyles.size());
JSONArray obj=JSONArray.fromObject(timeStyles);
getResponse().setContentType("text;charset=UTF-8");
try {
getResponse().getWriter().write(obj.toString());
} catch (IOException e) {
e.printStackTrace();
}
return NONE;
}
=======页面,获得后台传过来的json对象,便利json数组,动态添加====
$.ajax({
url:"/sitebao62p/page_getTimeStyle.do?ajax=true",
cache:false,
data:data,
dataType:"text",
type:"POST",
success:function(data){
closeDIV("addModel");
openDIV("addProductModel");
data=eval_r(""+data+"");
$.each(data,function(index,item){
temp="<option value='"+item.id+"'>"+item.stringStyle+"</option>";
$("#producttimeStyleId").append(temp);
});
}
});
例2==================需要自己组装json数组格式。==========================
try{
StringBuffer sb=new StringBuffer("[");
int length=OneNesType.size();
for (int i = 0; i <length; i++) {
Column model=(Column)OneNesType.get(i);
sb.append("{");
sb.append("'id':");
sb.append(""+model.getId()+",");
sb.append("'name':");
sb.append("'"+model.getName()+"'");
sb.append("},");
}
if(sb.lastIndexOf(",")>0){
sb=new StringBuffer(sb.substring(0,sb.lastIndexOf(",")));
}
sb.append("]");
System.out.println(sb.toString());
getResponse().setContentType("text;charset=UTF-8");
getResponse().getWriter().write(sb.toString());
return null;
}catch(Exception e){
e.printStackTrace();
}
return NONE;
}
===============json 是什么 json怎么用 json实例 json源码============
对于单独的一个json串
public void getCategoryAjax(int catId,HttpServletResponse response){
Category c = new Category();
c = myCategoryService.getCategory(catId);
int uid = 1;
//如果我什么都不需要返回,则下面怎么写?比如删除的时候
//获得我的目录
List<Category> list = myCategoryService.myCategoryList(uid);
StringBuffer sb=new StringBuffer();
sb.append("{'catId':"+c.getCatId()+",'name':'"+c.getName()+"','description':'"+c.getDescription()+"'}");
//sb.append("]");
writerResponseRes(response, sb.toString());
}
js中的体现
function update_category(catId){
var catId = catId;
var name = "";
var description = "";
$.ajax({
url:"/iknowing/getCategoryAjax.html",
type:"POST",
dataType:"text",
data:'catId='+catId,
success:function(data){
data=eval_r("("+data+")");
name = data.name;
description = data.description;
$("#updateName").attr("value",name);
if(description!='undefined'){
$("#updateDescription").attr("value",description);
}
$("#updateCatId").attr("value",catId);
}
});
$('#updateDiv').dialog('open');
}
小结:
本文通过一个实例演示,初步了解了 JSON 的强大用途。可以归结如下:
JSON 提供了一种优秀的面向对象的方法,以便将元数据缓存到客户机上。
JSON 帮助分离了验证数据和逻辑。
JSON 帮助为 Web 应用程序提供了 Ajax 的本质。
=======================================================
JSON是什么 JSON怎么用?
http://blog.sina.com.cn/s/blog_64aedc270100lbjc.html
相关文章推荐
- JSON是什么,JSON怎么用
- JSON是什么 JSON怎么用
- JSON是什么JSON怎么用
- JS基础学习第八天:JSON是什么?怎么使用?
- 怎么理解mqtt、MQ、json,有什么关系
- npm包管理器和package.json入门_npm是什么_npm怎么用
- 什么是JSON
- 电视HDMI接口是什么 有什么用 怎么用
- oracle 中--怎么查看当前表空间在作什么操作?--查锁,死锁,当前执行时间长的Sql语句,没提交的事务,对象为哪些进程所用
- 怎么确定要对DIV设置什么CSS属性样式
- 微信小程序怎么用?小程序有什么用?之501~600
- 当面试官问你用例设计时你会用什么方法,你怎么回答
- iClap的名字是怎么来的,clap是有什么特殊的意义么?
- 怎么辨别招聘网站的职位真假呢?有什么特征可以辨别?找工作实在太费力
- block fomatting context 怎么应用的?它是什么?
- JSON是什么?它能带来什么?
- HyperLinkColumn中DataNavigateUrlFormatString="detail.aspx?id={0}" 后面这个{0} 是什么意思?怎么给它动态赋值?
- caffe的proto里面的std是什么意思?怎么调?
- C语言中的子函数和主函数有什么联系啊?它们是怎么编写的?
- 什么是跨域?怎么解决跨域问题?