zoukankan      html  css  js  c++  java
  • jquery里把数组转换成json的方法

    首先来看,jquery里自带的,和json相关的函数:

    1.$.parseJSON  :  用来解析JSON字符串,返回一个对象。

    什么叫“JSON字符串”?

    比如:

    var a={name:"aijquery",url:"www.aijquery.cn"};

    上面定义的变量a是个JSON对象,我们可以直接用“a.name”或“a.url”来访问内容的数据。

    var a="{name:'aijquery',url:'www.aijquery.cn'}";

    上面定义的变量a就是一个符合JSON数据结构的字符串,可以叫做“JSON字符串”.

    PS:关于$.parseJSON的用法,可以参考站长以前写的这篇文章:

    jquery里把字符串转为json对象的四种方法,及每种方法的优缺点

    2. serializeArray()  : 序列化表格元素 ,返回JSON数据结构数据。

    虽然函数里有个"Array",但和本篇我们要说的“数组转JSON”无关,serializeArray()这个函数是用来获取表单数据的,和serialize()不同,serializeArray()返回的是JSON格式的数据。

    因为jquery就是在JS的基础上而来的,所以一些JS里的函数,我们在jquery里也是能直接用的,下面来看看JS里和JSON相关的两个函数:

    JSON.parse(text)  : 用于将一个 JSON 字符串转换为JSON对象。

    JSON.stringify() : 用于将一个"值"转换为 JSON 字符串。

    本章我们要说的,把数组转换成JSON,主要用到的就是 " JSON.stringify()  ",和以前一样,我们直接通过实例来学习:

    实例1:简单的数组:
    var data =["a","b","c"];
    var d =JSON.stringify(data);
    console.log(d);             //["a","b","c"]
    console.log($.type(d));     // string

    下面是上面这段代码的运行结果:

    [jquery里把数组转换成json的方法[精心整理]_1]

    从上面的代码里,我们可以看出,JSON.stringify() 确实是把数组转换成了字符串,但是这个字符串并不是“JSON字符串”,原因就是,在JSON里,数据都是“名字:值”这样配对的形式的,但上面这个数组太过简单,只是个一维数组,所以不能转换成“JSON字符串”的。

    实例2:二维数组:

    01:第一种形式的二维数组:
    var data =[["a","aa"],["b","bb"],["c","cc"]];
    var d =JSON.stringify(data);
    console.log(d);            //[["a","aa"],["b","bb"],["c","cc"]]
    console.log($.type(d));    //string

    运行结果如下:

    [jquery里把数组转换成json的方法[精心整理]_2]

    很明显,这个结果也不是我们想要的,因为转换后的字符串,并不是“JSON字符串”。

    02:第二种形式的二维数组:
    var data =new Array();
    data[0]=new Array();
    data[0][0]="a";
    data[0][1]="aa";
    data[1]=new Array();
    data[1][0]="b";
    data[1][1]="bb";
    var d =JSON.stringify(data);
    console.log(d);            //[["a","aa"],["b","bb"]]
    console.log($.type(d));    //string

    运行结果截图如下:

    [jquery里把数组转换成json的方法[精心整理]_3]

    很明显,这也不是我们想要的结果。。。。。

    03:再换一种写法:
    var data =new Array();
    data[0]=new Array();
    data[0]["name"]="a";
    data[0]["val"]="aa";
    data[1]=new Array();
    data[1]["name"]="b";
    data[1]["val"]="bb";
    var d =JSON.stringify(data);
    console.log(d);                //[[],[]]
    console.log($.type(d));        //string

    看这次的运行结果:

    [jquery里把数组转换成json的方法[精心整理]_4]

    与我们想要的结果更远了,不过不要急,还有最后一种:

    04:最后一种写法,直接把数据定义成对象:
    var data ={};
    data[0]={};
    data[0]["name"]="a";
    data[0]["val"]="aa";
    data[1]={};
    data[1]["name"]="b";
    data[1]["val"]="bb";
    var d =JSON.stringify(data);
    console.log(d);                //{"0":{"name":"a","val":"aa"},"1":{"name":"b","val":"bb"}}
    console.log($.type(d));        //string

    下面是截图:

    [jquery里把数组转换成json的方法[精心整理]_5]
    摘自  爱jQuery:http://www.aijquery.cn/Html/jqueryjiqiao/179.html

  • 相关阅读:
    Codeforces Round #272 (Div. 2) A. Dreamoon and Stairs 水题
    Codeforces Round #368 (Div. 2) E. Garlands 二维树状数组 暴力
    Codeforces Round #368 (Div. 2) D. Persistent Bookcase 离线 暴力
    Codeforces Round #368 (Div. 2) C. Pythagorean Triples 数学
    Codeforces Round #368 (Div. 2) B. Bakery 水题
    Codeforces Round #368 (Div. 2) A. Brain's Photos 水题
    BZOJ 4636: 蒟蒻的数列 分块
    BZOJ 4610: [Wf2016]Ceiling Functi 水题
    设置让TortoiseGit记住账号和密码
    JSON.stringify转换Date不正确的解決方法
  • 原文地址:https://www.cnblogs.com/vania/p/10763681.html
Copyright © 2011-2022 走看看