JSON(JavaScript Object Notation) 是一種輕量級的數 據交換格式,它採用完全獨立於語言的文字格式設定,可 以用來在用戶端和伺服器端傳輸資料!JSON對象既可用於AJAX的開發中,也可用一般的J2EE的開發中,用於一次性向後台提交多於一條的記錄!(譬如 顯示在頁面上的table中記錄)
JSON官方網站的介紹:(www.json.org)
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.
JSON is built on two structures:
* A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
* An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
These are universal data structures. Virtually all modern programming languages support them in one form or another. It makes sense that a data format that is interchangable with programming languages also be based on these structures.
簡單的樣本:
1。var jsonObj={person1:{name:"jack",age:"12"},
person2:{name:"kate",age:"23"},
person3:{name:"jim",age:"14"}
};
調用JSON對象的屬性,
1)jsonObj.person1.name
2)jsonObj["person1"].name
可以通過for迴圈的方式調用JSON對象中的每一個子物件
for(var p in jsonStr){
//alert(typeof p); alert(p);//返回的是string
str+=jsonObj[p].name+","+jsonObj[p].age+"<br>";
}
2。var jsonObj2={persons:[{name:"jordan",sex:"m",age:"40"},
{name:"bryant",sex:"m",age:"28"},
{name:"McGrady",sex:"m",age:"27"}
]};
調用JSON對象的屬性,
1)jsonObj2.persons[0].name;
2)for迴圈調用方法,
var persons=jsonObj2.persons;//返回的值是一個數組object
for(var i=0;i<persons.length;i++){
cur_person=persons[i];
str+=cur_person.name+"'sex is "+cur_person.sex+" and age is "+cur_person.age+"<br>";
}
向jsonObj2的persons數組中插入,刪除,更新 資料,
此處,可以利用javascript的Array對象的方法進行操作,如
var person={name:"yaoMing",sex:"m",age:"26"};
jsonObj2.persons.push(person);//數組最後加一條記錄
jsonObj2.persons.pop();//刪除最後一項
jsonObj2.persons.shift();//刪除第一項
jsonObj2.persons.unshift(person);//數組最前面加一條記錄
只要適合Javascript的方法都是可以用在JSON對象的數組中的!所以還有另外的方法splice( )進行crud操作!
//刪除
jsonObj2.persons.splice(0,1);//開始位置,刪除個數
//替換不刪除
var self={name:"tom",sex:"m",age:"24"};
var brother={name:"Mike",sex:"m",age:"29"};
jsonObj2.persons.splice(1,0,self,brother);//開始位置,刪除個數,插入對象
//替換並刪除
var self={name:"tom",sex:"m",age:"24"};
var brother={name:"Mike",sex:"m",age:"29"};
jsonObj2.persons.splice(0,1,self,brother);//開始位置,刪除個數,插入對象
二,知道了在Javascript中JSON的基本操作,但這還不能與後台進行互動,在著之前還需要把它轉化為 String!
方法有兩個,1)引入一個方法 :
function obj2str(o){
var r = [];
if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
if(typeof o == "object"){
if(!o.sort){
r[0]="{"
for(var i in o){
r[r.length]=i;
r[r.length]=":";
r[r.length]=obj2str(o[i]);
r[r.length]=",";
}
if(!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)){
r[r.length]="toString:"+o.toString.toString();
r[r.length]=",";
}
r[r.length-1]="}"
}else{
r[0]="["
for(var i =0;i<o.length;i++){
r[r.length]=obj2str(o[i]);
r[r.length]=",";
}
r[r.length-1]="]"
}
return r.join("");
}
return o.toString();
}
網上找的,還蠻好用地!!在此對原創者表示感謝啦!!