JSON是什麼 JSON怎麼用?
========================================================================================================
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易於閱讀和編寫,同時也易於機器解析和生成。。
JSON的結構基於下面兩點
1. "名稱/值"對的集合不同語言中,它被理解爲對象(object),記錄(record),結構(struct),字典(dictionary),哈希表 (hash table),鍵列表(keyed list)等
JSON以一種特定的字符串形式來表示 JavaScript 對象。如果將具有這樣一種形式的字符串賦給任意一個 JavaScript 變量,那麼該變量會變成一個對象引用,而這個對象就是字符串所構建出來的,好像有點拗口,我們還是用實例來說明。
用戶ID
{"UserID":11, "Name":"Truly", "Email":"zhuleipro◎hotmail.com"};
完整代碼:
<script>
{"UserID":11, "Name":{"FirstName":"Truly","LastName":"Zhu"}, "Email":"qq◎hotmail.com"}
<script>
完整代碼:
<script>
alert(UserList[0]["Name"]["FirstName"]); 或者 alert(UserList[0].Name["FirstName"]);
現在讀者應該對JSON的使用有點認識 了,歸納爲以下幾點:
對象是屬性、值對的集合。一個對象的開始於“{”,結束於“}”。每一個屬性名和值間用“:”提示,屬性間用“,”分隔。
下面用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:"json",
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:"json",
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 提供了一種優秀的面向對象的方法,以便將元數據緩存到客戶機上。