zoukankan      html  css  js  c++  java
  • JavaScript(3):JSON

     1 <!DOCTYPE html>
     2 <html>
     3     <body>
     4         <p>JSON</p>
     5         <script>
     6             // JSON 值可以是:数字,字符串,逻辑值,数组,对象,null
     7             var personalInfoList = [
     8                 {"id":1, "name":"Harry", "age":22, "gender":null, "married":false, "advantage":["C", "C#", "C++"]},
     9                 {"id":2, "name":"Frank", "age":26, "gender":null, "married":true, "advantage":["Java", "JavaScript", "Python"]}
    10             ];
    11             // 可以如下访问JSON
    12             console.log(personalInfoList[1].name);
    13             console.log(personalInfoList[1]["age"]);
    14             // 循环访问元素
    15             for(i in personalInfoList) {
    16                 for(j in personalInfoList[i].advantage) {
    17                     console.log(personalInfoList[i].advantage[j]);
    18                 }
    19             }
    20 
    21             // JSON通常用于与服务端交换数据/在接收服务器数据时一般是字符串
    22             // 可以使用JSON.parse()方法将数据转换为JavaScript对象
    23             var personalInfoListStr = '[ {"id":1, "name":"Harry", "age":22, "gender":null, "married":false, "advantage":["C", "C#", "C++"]},
    24                  {"id":2, "name":"Frank", "age":26, "gender":null, "married":true, "advantage":["Java", "JavaScript", "Python"]} ]';
    25             // 转换成一个有效的JSON字符串
    26             var personalInfoList1 = JSON.parse(personalInfoListStr);
    27             console.log(personalInfoList1[1].name);
    28             console.log(personalInfoList1[1].age);
    29             // 可以加一个转换结果的函数, 将为对象的每个成员调用此函数
    30             var personalInfoList2 = JSON.parse(personalInfoListStr, function(key, value) {
    31                 if(key == "age") {
    32                     return value + 1;
    33                 } else {
    34                     return value;
    35                 }
    36             });
    37             console.log(personalInfoList2[0].age);
    38             console.log(personalInfoList2[1].age);
    39 
    40             // JSON 通常用于与服务端交换数据/在向服务器发送数据时一般是字符串
    41             // 可以使用 JSON.stringify()方法将JavaScript对象转换为字符串
    42             // [注意!]不得包含Data对象和函数对象
    43             var personalInfoList3 = JSON.stringify(personalInfoList);
    44             console.log(personalInfoList3);
    45             // 带有转换结果和文本缩进
    46             var personalInfoList4 = JSON.stringify(personalInfoList, function(key, value) {
    47                 if(key == "age") {
    48                     return value - 1;
    49                 } else {
    50                     return value;
    51                 }
    52             }, 2);
    53             console.log(personalInfoList4);
    54 
    55             // eval()函数也可以解析 JSON 文本,然后生成JavaScript对象
    56             var personalInfoList5 = eval(personalInfoListStr);
    57             console.log(personalInfoList5[1].name);
    58             console.log(personalInfoList5[1].age);
    59             // eval()函数同时可以编译执行任何JavaScript代码, 会有潜在安全问题,所以,还是最好使用JSON.parse
    60             var demo = 'console.log("lalala~");';
    61             eval(demo);
    62         </script>
    63     </body>
    64 </html>
  • 相关阅读:
    英语 年份 读法
    香农第二定理的理解
    为什么正规子群在环里的对应概念叫理想,而不叫正规子环呢?
    vue 时间组件限制选择范围
    ubuntu 设置 shell脚本双击运行
    单元测试规范
    vue-element-admin项目配置运行
    SqlServer表字段查询
    git提交部分文件
    Asp.NetCore+Elasticsearch+Kibana日志记录
  • 原文地址:https://www.cnblogs.com/storml/p/7507597.html
Copyright © 2011-2022 走看看