首先来看,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

jquery里把数组转换成json的方法的更多相关文章

  1. $.toJSON的用法或把数组转换成json类型

    1. html页面全部代码 <html> <head>     <title></title> <script src="../../S ...

  2. 字符串集合或字符串数组转换成json数组

    字符串可以是List<String>类型的字符串集合,也可以是String[]类型的字符串数组,二者转换成JSON数组的方式没有什么不同.下面代码注意关键的部分即可(画红线部分). 1. ...

  3. 将字典或者数组转换成JSON数据或者字符串

    将字典或者数组转换成JSON数据或者字符串 源码: NSDictionary+JSON.h 与 NSDictionary+JSON.m // // NSDictionary+JSON.h // Cat ...

  4. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  5. 数组转换成json

    下面是详细的步骤,也可参考http://blog.csdn.net/wangliqiang1014/article/details/19924727 iOS数组可以转换车json对象,转换代码:NSS ...

  6. js数组转换成json串 (JSON.stringify)

    例如: var giftlist[1490011777] = []; giftlist[1490011777]['id'] = 1490011777; giftlist[1490011777]['na ...

  7. 数组转换成json key-value形式

    eg1(数组中包含的是数组): var jsonData = {}; var arr = [[1, 'boy', 'dabing'], [2, 'girl', 'dabing']]; for (var ...

  8. php数组转换成json格式。

    { "touser":"OPENID", "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0t ...

  9. C#转换成Json的方法集

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Te ...

随机推荐

  1. javaweb项目的全局监听配置

    在项目中有时候会遇到全局监听的需求,而全局性的监听该如何配置,代码如下: package com.demo.listener; import javax.servlet.ServletContextE ...

  2. 17.Letter Combinations of a Phone Number (char* 和 string 相互转化)

    leetcode 第17题 分析 char*和string相互转化 char*(或者char)转string 可以看看string的构造函数 default (1) string(); copy (2 ...

  3. 远程连接windows2003桌面无法使用剪切板的有效解决方法

    远程桌面控制服务器时,无法剪切.粘贴一些东西,上网搜了一下,原来是rdpclip.exe(remote desktop clipboard)不起作用了.此程序负责管理本地机与远程服务器之间共享剪切板, ...

  4. Batch normalization简析

    Batch normalization简析 What is batch normalization 资料来源:https://www.bilibili.com/video/av15997678/?p= ...

  5. mac 在finder上面显示完成路径

    打开终端,输入以下命令并回车: defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES 然后再把finder关了再打开,你会 ...

  6. Vue中断axios请求-切换页面+重复请求

    切换页面时中断 一.概述 在Vue单页面开发过程中,遇到这样的情况,当我切换页面时,由于上一页面请求执行时间长,切换到该页面时,还未执行完,这时那个请求仍会继续执行直到请求结束,此时将会影响页面性能, ...

  7. js重点——作用域——作用域分类(三)

    一.作用域可以分为全局作用域,局部作用域(函数作用域)和块级作用域. 1.全局作用域 代码在程序中的任何位置都能被访问到,window对象的内置属性都拥有全局作用域. <script> v ...

  8. asp.net 简单的身份验证

    1 通常我们希望已经通过身份验证的才能够登录到网站的后台管理界面,对于asp.net 介绍一种简单的身份验证方式 首先在webconfig文件中添加如下的代码 <!--身份验证--> &l ...

  9. LLVM新建全局变量

    在LLVM中,有原生的AST Clone,却没有一个比较好的Stmt copy功能,基于Scout在LLVM上进行的修改,我们实现了自己的Stmt Clone功能. 要进行Stmt Clone,肯定需 ...

  10. mysql 利用 case 批量更新