zoukankan      html  css  js  c++  java
  • Json

    JSON (JavaScript ObjectNotation)JS对象记号,是JavaScript中一个标准子集,所以用JavaScript平台处理JSON是最合适的。
    JSON有两种基本结构:
    1、A collection of name/value pairs (键值对的集合),如 var t={"name":"h5"}
    2、An ordered list of values. In most languages, this is realized as an array,vector, list, or sequence.( 一个有序的列表(数组、向量、列表、队列),如vart=["h1","h2","h3","23"];
    今天主要讲第一种基本结构JSON的操作:
    一、通过访问key获取对应的value
    两种情况,只能用第二种方法:
    1、key是数字开头的时候
    2、key是变量名的时候
    3、key包含空格的时候
    二、遍历json的key
    如何遍历var p={"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}中的键?
    也有两种方法:
    1、用for循环
    for(var key in p){
    alert(key);
    2、Object.keys方法获取
    var keys=Object.keys(p);
    for(var k=0;k<keys.length;k++){
    alert(keys[k]);
    三、遍历json的值
    如何遍历var p={"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}中的值?我们知道,值可以根据键获取,所以如果有两种方法实现遍历键,就有两种方法获取值,只要知道值=对象[‘键’]即可,除此之外,还可以通过Object.values()获取。
    1、for循环遍历p的所有value
    for(var key in p){
    alert(p[key]);
    2、通过Object.keys方法获取键,再获取值
    var keys=Object.keys(p);
    for(var k=0;k<keys.length;k++){
    alert(p[keys[k]]);
    3、Object.values()方法
    除了上述两种方案外,还有Object.values()这个方法。但是,该方法并不是所有浏览器都支持。
    var values=Object.values(s);
    for(var k=0;k<values.length;k++){
    alert(values[k]);
    四、添加属性
    比如var p={"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}json数据,运行如下代码 p[‘sex’]=’男’; 结果为
    p={"firstName":"Brett","lastName":"McLaughlin","email":"aaaa",”sex”:”男”}
    五、删除属性
    调用delete 方法即可。
    比如p={"firstName":"Brett","lastName":"McLaughlin","email":"aaaa",”sex”:”男”}
    delete p[‘sex’]
    结果为:
    p={"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}
    六、修改属性
    重新给对象的属性赋值即可,比如把p对象的email属性改为http://www.163.com,只要编写如下代码:p[‘email’]=’ http://www.163.com’。
    七、扩展
    Object.preventExtensions()方法用于锁住对象属性,使其不能够拓展,也就是不能增加新的属性,但是属性的值仍然可以更改,也可以把属性删除,Object.isExtensible()用于判断对象是否可以被拓展。
    Object.seal( ) 方法可以让一个对象密封,并返回被密封后的对象。密封对象是指那些不能添加新的属性,不能删除已有属性,以及不能修改已有属性的可枚举性、可配置性、可写性,但可以修改已有属性的值的对象。
    Object.freeze();[
    终极神器,完全冻结对象,在seal的基础上,属性值也不可以修改(每个属性的wirtable也被设为false)。
  • 相关阅读:
    设计模式中的多态——策略模式详解
    Spring IOC容器启动流程源码解析(一)——容器概念详解及源码初探
    并发包下常见的同步工具类详解(CountDownLatch,CyclicBarrier,Semaphore)
    HNOI2020游记
    旧年之末,新年伊始
    退役V次后做题记录
    PKUWC2020 游记
    CSP2019退役记
    CTS/APIO2019游记
    HNOI2019游记
  • 原文地址:https://www.cnblogs.com/jason111/p/9166125.html
Copyright © 2011-2022 走看看