js學習五-JSON
JavaScript Object Notation,是一種輕量級的資料交換格式
注意:屬性名要用“”括起來,建構函式中的屬性名不需要用“”括起來
JSON字串的格式一定要標準,key和value一定要用雙引號包括,否則會出線解析異常
特點:輕量級,純文字,適合不同語言間的互動
方法:
1.JSON.parse(text[,reviver])
text為JSON格式的字串,JSON.parse 將 JSON 字串轉換為物件
在IE6/7上不支援JSON.parse
將obj物件轉換成JSON格式的字串的格式
在IE6/7上不支援JSON.
注意:屬性名要用“”括起來,建構函式中的屬性名不需要用“”括起來
JSON字串的格式一定要標準,key和value一定要用雙引號包括,否則會出線解析異常
特點:輕量級,純文字,適合不同語言間的互動
方法:
1.JSON.parse(text[,reviver])
text為JSON格式的字串,JSON.parse 將 JSON 字串轉換為物件
在IE6/7上不支援JSON.parse
解決方法:
if(!window.JSON) {
window.JSON = {
parse:function(sJSON) {
return eval('('+sJSON+')')
},
//eval就是將字串按照js物件進行處理
stringify: function(obj){
var result = "";
for(var key in obj){
if(typeof obj[key] == "string"){
// 如果屬性值是String型別,屬性值需要加上雙引號
result += "\"" + key + "\":\"" + obj[key] + "\",";
}else if(obj[key] instanceof RegExp){
// 如果屬性是正規表示式,屬性值只保留一對空大括號{}
result += "\"" + key + "\":{},";
}else if(typeof obj[key] == "undefined" || obj[key] instanceof Function){
// 如果屬性值是undefined, 該屬性被忽略。忽略方法。
}else if(obj[key] instanceof Array){
// 如果屬性值是陣列
result += "\"" + key + "\":[";
var arr = obj[key];
for(var item in arr){
if(typeof arr[item] == "string"){
// 如果陣列項是String型別,需要加上雙引號
result += "\"" + arr[item] + "\",";
}else if(arr[item] instanceof RegExp){
// 如果屬陣列項是正規表示式,只保留一對空大括號{}
result += "{},";
}else if(typeof arr[item] == "undefined" || arr[item] instanceof Function){
// 如果陣列項是undefined, 則顯示null。如果是函式,則顯示null?。
result += null +",";
}else if(arr[item] instanceof Object){
//如果陣列項是物件(非正則,非函式,非null),呼叫本函式處理
result += this.stringify(arr[item]) +",";
}else{
result += arr[item] + ",";
}
}
result = result.slice(0,-1)+"],"
}else if(obj[key] instanceof Object){
// 如果屬性值是物件(非null,非函式,非正則),呼叫本函式處理
result += "\"" + key + "\":" + this.stringify(obj[key]) + ",";
}else{
result += "\"" + key + "\":" + obj[key] + ",";
}
}
// 去除最後一個逗號,兩邊加{}
return "{" + result.slice(0,-1) + "}";
}
};
}
2.JSON.stringify(obj)將obj物件轉換成JSON格式的字串的格式
在IE6/7上不支援JSON.
code
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON</title>
</head>
<body>
<script type="text/javascript">
var onepiece = {
id:1,
nick:"caomao",
name:"lufei",
status:"captain",
years:"18"
};
var test = '{"id":1,"nick":"caomao","name":"lufei","status":"captain","years":"18"}';
var op1 = JSON.stringify(onepiece);
// var op2 = JSON.parse(onepiece);
console.log('op1');
console.log(op1);
// {"id":1,"nick":"caomao","name":"lufei","status":"captain","years":"18"}
var op2 = JSON.stringify(onepiece, ['id','name','status']);
console.log(op2)
//{"id":1,"name":"lufei","status":"captain"}只顯示JSON物件中的部分資訊
var op3 = JSON.parse(test);
//JSON.parse 將 JSON 字串轉換為物件
console.log(op3);
// Object {id: 1, nick: "caomao", name: "lufei", status: "captain", years: "18"}
debugger;
</script>
</body>
</html>
相關文章
- JSon 學習JSON
- 學習JSONJSON
- 學習JSON物件JSON物件
- JSON學習--com.alibaba.fastjson.JSONJSONAST
- 學習JSON陣列JSON陣列
- 學習JSON.stringify()JSON
- 介面測試學習之 jsonJSON
- 介面測試學習之jsonJSON
- XML與JSON學習歸納XMLJSON
- Json-path學習筆記JSON筆記
- json例項練習 json物件JSON物件
- 菜鳥也想學習JSON解析JSON
- 手寫Json解析器學習心得JSON
- jQuery入門(五)Ajax和jsonjQueryJSON
- Vue.js 原始碼學習五 —— provide 和 inject 學習Vue.js原始碼IDE
- AngularJS學習日記(五)UI-RouteAngularJSUI
- ansible-playbook劇本 yaml json jq 學習YAMLJSON
- Python JSON教學PythonJSON
- 使用 Protocol Buffers 代替 JSON 的五個原因ProtocolJSON
- jackson學習之五:JsonInclude註解JSON
- (資料科學學習手札137)orjson:Python中最好用的json庫資料科學JSONPython
- MFC學習(五)
- 字典和json的區別是什麼?Python學習JSONPython
- JavaScript學習總結(六)資料型別和JSON格式JavaScript資料型別JSON
- Scala學習(五)練習
- Spring學習手冊 1:Spring MVC 返回JSON資料SpringMVCJSON
- python 學習 -- json的序列化和反序列化PythonJSON
- 【Go學習筆記9】go語言中的工具包-jsonGo筆記JSON
- 函式學習五函式
- C++學習五C++
- EXP/IMP 學習(五)
- js把json字串轉成json物件JSON字串物件
- 【json】json基礎知識JSON
- 《JSON》JSON
- JSONJSON
- [.net 物件導向程式設計進階] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json類物件程式設計JSON
- 學習JSJS
- js學習JS