JSON——李炎灰js笔记

//JSON 的简单值
10
null
true
"fc"

//对象表示
var box = {
    name : ‘fc‘,
    age : 25
};

//JSON对象表示
{
    "name" : "fc",
    "age" : "25"
}

‘{"name" : "fc","age" : "25"}‘
//PS:JSON说白了就是一个字符串,所以任何表示,都应该加上引号表示字符串。

// 普通数组
var box = [100, ‘fc‘, true];

// JSON数组
‘[100, "fc", true]‘
// PS:JSON对象和数组比普通对象和数组,少了分号,少了变量赋值,而且本身应该是字符串表示。

// 最常用的JSON结构
[
    {
        "name" : "fc",
        "age" : 25
    },
    {
        "name" : "lq",
        "age" : 25
    },
    {
        "name" : "hehe",
        "age" : 25
    }
]

// 模拟加载JSON数据字符串的过程, var json = load(‘demo.json‘);
// 把JSON字符串加载进来并且赋值给json变量。

var json = [{"title":"a","num":1},{"title":"b","num":2}];
var json1 = ‘[{"title":"a","num":1},{"title":"b","num":2}]‘;

console.log(json);  //[Object, Object]
console.log(json1); //[{"title":"a","num":1},{"title":"b","num":2}]
console.log(typeof json1);  //string

// 解析和序列化
// 如果是载入的JSON文件,我们需要对其进行使用,那么就必须对JSON字符串解析成原生的JavaScript值。当然,如果是原生的JavaScript对象或数组,也可以转换成JSON字符串。
// 对于将JSON字符串解析为JavaScript原生值,早期采用的是eval()函数。但这种方法既不安全,可能会执行一些恶意代码。
var json = ‘[{"title":"a","num":1},{"title":"b","num":2}]‘;
var box = eval(json);
console.log(box);   //[Object, Object]
console.log(box[1].title);  //b

var box = [
    {
        title : ‘a‘,
        num : 1,
        height : 122
    },
    {
        title : ‘b‘,
        num : 2,
        height : 133
    }
]

var json = JSON.stringify(box);
console.log(json);  //[{"title":"a","num":1,"height":122},{"title":"b","num":2,"height":133}]

var box = [
    {
        title : ‘a‘,
        num : 1,
        height : 122
    },
    {
        title : ‘b‘,
        num : 2,
        height : 133
    }
]

var json = JSON.stringify(box,[‘num‘, ‘height‘]);
console.log(json);  //[{"num":1,"height":122},{"num":2,"height":133}]

var box = [
    {
        title : ‘a‘,
        num : 1,
        height : 122
    },
    {
        title : ‘b‘,
        num : 2,
        height : 133
    }
]

var json = JSON.stringify(box, function (key, value) {
    if(key === ‘title‘){
        return ‘Mr.‘ + value;
    } else {
        return value;
    }
});
console.log(json);  //[{"title":"Mr.a","num":1,"height":122},{"title":"Mr.b","num":2,"height":133}]

// PS:火狐3.5和3.6在最初支持JSON的时候stringify方法有个小bug,执行funxtion会出错。

var box = [
    {
        title : ‘a‘,
        num : 1,
        height : 122
    },
    {
        title : ‘b‘,
        num : 2,
        height : 133
    }
]

var json = JSON.stringify(box,[‘title‘, ‘num‘], 4);
var json2 = JSON.stringify(box,[‘title‘, ‘num‘], ‘--‘);
console.log(json);
// [
//     {
//         "title": "a",
//         "num": 1
//     },
//     {
//         "title": "b",
//         "num": 2
//     }
// ]

console.log(json2);
// [
// --{
// ----"title": "a",
// ----"num": 1
// --},
// --{
// ----"title": "b",
// ----"num": 2
// --}
// ]

var box = [
    {
        title : ‘a‘,
        num : 1,
        height : 122
    },
    {
        title : ‘b‘,
        num : 2,
        height : 133
    }
]

var json = JSON.stringify(box,null , 4);

console.log(json);
// [
//     {
//         "title": "a",
//         "num": 1,
//         "height": 122
//     },
//     {
//         "title": "b",
//         "num": 2,
//         "height": 133
//     }
// ]

var box = [
    {
        title : ‘a‘,
        num : 1,
        height : 122,
        toJSON : function () {
            return this.title;
        }
    },
    {
        title : ‘b‘,
        num : 2,
        height : 133,
        toJSON : function () {
            return this.title;
        }
    }
]

var json = JSON.stringify(box);

console.log(json);  //["a","b"]

// JSON序列化也有执行顺序,首先执行toJSON()方法;如果应用了第二个参数,则执行这个方法。然后执行序列化过程。比如将键值对组成合法的JSON字符串,比如加上双引号,如果提供了缩进,在执行缩进操作。

var json = ‘[{"title":"a","num":1},{"title":"b","num":2}]‘;
var box = JSON.parse(json)
console.log(json);
时间: 2024-11-08 09:52:40

JSON——李炎灰js笔记的相关文章

node.js笔记——模块的开发

模块是什么? 简单来说模块是用来将实现某个功能的代码进行封装以便在其他项目中通过简单引入的方式实现模块中封装的功能的一个东西!!(我更想管他叫小程序). 模块的引入 模块的引入使用reqiure()函数来实现例如引入http模块 var h = require("http"); 这里需要注意的是require()加载函数可以加载指定的js文件,当引入的不是某个js文件而是一段没有扩展名的字符时,默认node.js会加载当前根目录下的node_modules文件夹下面的文件夹里的文件 并

Node.js笔记(0003)---Express框架Router模块学习笔记

这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: Map logic to route parameters. 大概意思就是路由参数的映射逻辑 这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序 再看看源码里面的介绍: Map the given param placeholder `name`(s) to the given callbac

# JS笔记(1)

 JS理论: 1.JavaScript是一个客户端脚本 ------工作在客户端的浏览器完成:相对应的PHP.ASP.NET .JSP 是一个服务端脚本. 2.JS可以插入到HTML中的任意一个位置,不过HTML解析式从上往下解析的,所以放在上面可能会找不到控件. 3.JS的特点: 脚本编程语言 基于对象的语言 由事件驱动 跨平台.依赖于浏览器.与操作环境无关 4.JS的作用: 表单的验证(放在客户端验证比较好)----可以减轻服务端的压力,并且用户体验感更好 页面的动态效果 动态改变页面的内容

李炎恢PHP笔记

Print Echo print 输出 转型 $sum=0; $total=(float)$sum Isset()   unset()判断一个变量是否存在 $echo intval$sum 浮点型 Define(“total”,100); 常量一旦定义就不可更改 判断句 <?php If ($userAge>14){ Echo’内容’:} ?> <?php If ($userAge>14){ Echo’内容’:} Else{echo ‘wufawutian’}; ?>

node.js笔记——文件之间的引入

node.js的基础语法就是JavaScript的语法,所以对于懂得javascript的同学来说要容易一些,至于环境的配置也要相对简单很多,可以访问官方文档进行安装.这里分享一下我在学习中总结的一些东西,这是第一篇先来说说文件之间如何进行引入并互相使用变量及函数. 码缘»node.js笔记——文件之间的引入 http://www.ithome.ren/2017/05/31/node-js1.html

使用js把json字符串转为js对象的方法

ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5)中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐怕这是最早的解析方式了.如下: 复制代码代码如下: function strToJson(str){ var json = eval('(' + str + ')'); return json; } 记得别忘了str两旁的小括号. 这里属性名可以使用数字,可以带引号也可以不带引号.如果属性名是纯数字,

JS 笔记 17年

1, 可把字符串作为 URI 组件进行编码   encodeURIComponent(encodeURIComponent(6))   此为编码两次 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号. escape()除了 ASCII 字母.数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法.而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换.encodeURIComponen

json对象传入js方法失败

1 var msg:String = {"isBannedUid":"119","isBannedUserId":"112554","isBannedNickName":"test"}; 2 var obj:Object = new Object(); 3 var jsons:String = ""; 4 obj.msg = msg; 5 jsons = JSON.s

使用JSON语法创建JS对象(重要)

JS对象的键值可以加单引号或者不加或者加双引号 JSON语法提供了一种更简单的方式来创建对象,可以避免书写函数,也可避免用new关键字,可以直接创建一个JS对象,使用一个花括号,然后将每个属性写成"key:value"的形式. 从JavaScript1.2开始,创建对象有了一种更快捷的语法: 格式如下: var p = { name: '张三', sex: '男', info: function() { alert("这是函数格式!"); } } 这种语法就是一种J