JSON解析

Posted amandaj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON解析相关的知识,希望对你有一定的参考价值。

第一种方式JSON.parse

$.ajax({
    "url":"result/json1.php",
     "type":"post",
      "success":function (data) {
      //①将JSON形式的字符串变为对象(JSON)
     var json = JSON.parse(data);
      $("h1").html(json.info);
            }
   })
var obj = {
              "name":"哈哈",
              "age":12
        }
console.log(typeof obj);
console.log( typeof JSON.stringify(obj));

第二种方式

概述:eval()是系统默认的函数,是作为window对象的一个方法、因此可以省略window直接使用;

             eval()这个函数很‘变态’;可以将字符串真的变为语义层面上的代表;

 

$.ajax({
              "url":"result/json1.php",
               "type":"post",
               "success":function (data) {
                 var json = eval("("+data+")");
                 console.log(typeof json);
                  $("h1").html(json.name);
               }
        });

eval("function fun(){console.log(\'我是一个函数\')};fun();")

提示:eval()可以将字符串转换为咱们语义上的代码的含义

       ②eval(‘(‘+data+’)’);

第三种方式

 

$.ajax({
              "url":"result/json1.php",
               "type":"post",
               "success":function (data) {
                 var json = Function("return"+data)();
                 $("h1").html(json.ceo);
               }
        });

 

提示:JSON它是系统内置的对象、eval()它也是系统内置的函数可以将字符串转换为语义;

       Function系统内置的构造函数,我们也可以拿过来直接使用

json练习

 

result/json1.php
<?php
  $arr = array("name"=>"百度","info"=>"上市公司","ceo"=>"老板","age"=>30);
  //将数组转换为JSON返回给前端
  print_r(json_encode($arr));
?>
    <h1></h1>
    <script type="text/javascript">
        $.ajax({
               "url":"result/json1.php",
               "type":"post",
               "success":function (data) {
                /* ①
                  将JSON形式的字符串变为对象(JSON)
                     var json = JSON.parse(data);
                     $("h1").html(json.info);
                     console.log(data);
                   ②
                    var json = eval("("+data+")");
                   $("h1").html(json.name);
                   console.log(typeof json);
                   console.log(json);
                   eval("function fun(){console.log(\'我是一个函数\')};fun();")
                    ③
                   var json = Function("return"+data)();
                   $("h1").html(json.ceo);
                   console.log(json);
                 */

               }
        });
    </script>

 

以上是关于JSON解析的主要内容,如果未能解决你的问题,请参考以下文章

使用 json rereiver php mysql 在片段中填充列表视图

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

NodeJs GraphQL 片段解析器

不要在片段中显示列表视图项

Json解析工具类

Golang实践录:反射reflect的一些研究及代码汇总