zoukankan      html  css  js  c++  java
  • JSON的解析

    一:JSON字符串转换为JSON对象

    JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

    如Ajax等。

    1、Javascript 的 eval()函数

    由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

    eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

    var person = '{"name":"BeginMan","age":22}';//Json字符串
    var personObject = eval("("+person+")");    //解析为Json对象
    alert(personObject);    //[object Object]

    eval 函数非常快,但是它可以编译任何 javascirpt 代码,这样的话就可能产生安全的问题。eval 的使用是基于传入的代码参数是可靠的假设的,有一些情况下,可能客户端是不可信任的。

    2、json2.js

    为了方便地处理JSON数据,JSON提供了json2.js包,下载地址:https://github.com/douglascrockford/JSON-js/blob/master/json2.js

    JSON.parse(JsonText,filter);  将 JavaScript 对象表示法 (JSON) 字符串转换为对象。可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。parse:解析

    //导入json2.js
    //JSON.parse(JsonText,filter);//可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。
    var pjson = JSON.parse(person,function(key,value){
        alert(key+value);//输出nameBeginMan,age22
    })

    二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。

    1.JSON.stringify(value [, replacer] [, space])作用:将 JavaScript 对象转换为字符串,这个函数的作用主要是为了系列化对象的。

    //数据接上面
    var pobject = JSON.stringify(personObject);
    alert(pobject);    //输出{"name":"BeginMan","age":22}

        例如:

        var last=JSON.stringify(obj); //将JSON对象转化为JSON字符

        alert(last);

    2.toJSONString()

       例如:

       var last=obj.toJSONString(); //将JSON对象转化为JSON字符

        留心:

        上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json2.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。

    将两个JSON对象组装到一个里面

    function addJson(J1,J2){
        if(J1&&J2){
            for(var i in J2){
                J1[i]=J2[i];
            }
        }
    }
    var json1 = {"name":"BeginMan"};
    var json2 = {"age":22};
    addJson(json1,json2);//由于并没有返回结果,所以只是进行功能上的操作
    alert(JSON.stringify(json1));    //输出{"name":"BeginMan","age":22}

     参考:

    http://www.json.org/json-zh.html

    http://www.cnblogs.com/xiaoyaoyou3/archive/2013/04/12/3015903.html

    http://blog.csdn.net/sanpintian/article/details/7347711

    http://www.cnblogs.com/worfdream/articles/1956449.html

  • 相关阅读:
    Linux下find命令详解
    shell if语句
    目标文件系统映像制作工具mkyaffs2image
    编译内核
    FPS含义
    linux下echo命令详解
    Mssql数据库语句综合
    string 字符串操作
    Lession 15 Good news
    Mysql使作心得(备份,还原,乱码处理)
  • 原文地址:https://www.cnblogs.com/leejersey/p/3407435.html
Copyright © 2011-2022 走看看