JSON是什么JSON怎么用

留着用
原文地址:JSON是什么 JSON怎么用 作者:zc4ever

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 StringgetTimeStyle(){

TimeStyleDAOtimeStyleDAO = TimeStyleDAO.getInstance();

timeStyles =timeStyleDAO.getAllStringStyle();

System.out.println(timeStyles.size());

JSONArrayobj=JSONArray.fromObject(timeStyles);

getResponse().setContentType("text;charset=UTF-8");

try {

getResponse().getWriter().write(obj.toString());

} catch (IOException e){

// TODO Auto-generatedcatch 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="<optionvalue='"+item.id+"'>"+item.stringStyle+"</option>";

$("#producttimeStyleId").append(temp);

});

}

});

例2=================需要自己组装json数组格式。====================

try{

StringBuffer sb=newStringBuffer("[");

intlength=OneNesType.size();

for (int i = 0; i<length; i++) {

Columnmodel=(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=newStringBuffer(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(Exceptione){

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());

JSONArrayobj=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="<optionvalue='"+item.id+"'>"+item.stringStyle+"</option>";

$("#producttimeStyleId").append(temp);

});

}

});

例2==================需要自己组装json数组格式。==========================

try{

StringBuffer sb=newStringBuffer("[");

int length=OneNesType.size();

for (int i = 0; i<length; i++) {

Columnmodel=(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=newStringBuffer(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(intcatId,HttpServletResponse response){

Category c = new Category();

c =myCategoryService.getCategory(catId);

int uid = 1;

//如果我什么都不需要返回,则下面怎么写?比如删除的时候

//获得我的目录

List<Category> list =myCategoryService.myCategoryList(uid);

StringBuffer sb=newStringBuffer();

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怎么用?

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值