jq js json 转字符串_JS中JSON对象和String之间的互转及处理技巧

json:JavaScript 对象表示法(javascript Object Notation),其实JSON就是一个javaScript的对象(Object)而已。

如有不清楚JSON,可以去w3cschool了解http://www.w3school.com.cn/json/

1.在Javascript中新建一个字符串(JSON文本)。 var txt = '{ "employees" : [' +

'{ "firstName":"Bill" , "lastName":"Gates" },' +

'{ "firstName":"George" , "lastName":"Bush" },' +

'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';

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

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

注意:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了一个潜在的安全问题。

使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。

在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。

较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。

字符串转json对象:JSON.parse(jsonstr);

json对象转json字符串:JSON.stringify(jsonObj);

JQuery方法:

json字符串转json对象:jQuery.parseJSON(jsonStr);

通过 JSON 字符串来创建对象

First Name:

Last Name:

var txt = '{"employees":[' +

'{"firstName":"Bill","lastName":"Gates" },' +

'{"firstName":"George","lastName":"Bush" },' +

'{"firstName":"Thomas","lastName":"Carter" }]}';

obj = JSON.parse(txt);

document.getElementById("fname").innerHTML=obj.employees[1].firstName

document.getElementById("lname").innerHTML=obj.employees[1].lastName

2.那么如何遍历json数组呢?可以把它当成一个普通的javascript对象来处理。

如何遍历JSON数组

var txt = '[{"firstName":"Bill","lastName":"Gates" },' +

'{"firstName":"George","lastName":"Bush" },' +

'{"firstName":"Thomas","lastName":"Carter" }]';

var arrayJson = JSON.parse(txt);

var html='';

for(var p in arrayJson){

html+=' firstName:'+arrayJson[p].firstName;

html+=' lastName'+arrayJson[p].lastName;

html+='
';

}

document.getElementById("result").innerHTML= html;

ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/js.html提 供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;你可以在 https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

ie8(兼容模式),ie7和ie6可以使用eval()将字符串转为JSON对象, var c='{"name":"Mike","sex":"女","age":"29"}';

var cToObj=eval("("+c+")");

alert(typeof(cToObj));

以上内容是针对JS中JSON对象和String之间的互转及处理技巧,希望对大家有所帮助。接下来给大家补充点知识JavaScript中String和JSON之间的转换。

下面给大家介绍w3c标准的浏览器(如火狐、chrome等)是有一个对象JSON(注意是大写)专门用来处理json的。这个对象有两个函数:

JSON.parse(text) //用于解析json;

JSON.stringify(object) //用于生成json格式;

早期的IE版本没有这个对象,可以去json的官方网站自行下载json2.js对付早期IE版本http://www.JSON.org

下面是之前的一些方法,现在可以弃用了

1.旧方法 function strToJson(str){

var json = eval('(' + str + ')');

return json;

}

2.常用 function strToJson(str){

return (new Function("return " + str))();

}

3.IE不支持的方法 function strToJson(str){

return JSON.parse(str);

}

4.jQuery方法 parseJSON: function( data ) {

if ( typeof data !== "string" || !data ) {

return null;

}

data = jQuery.trim( data );

if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")

.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")

.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {

return window.JSON && window.JSON.parse ?

window.JSON.parse( data ) :

(new Function("return " + data))();

} else {

jQuery.error( "Invalid JSON: " + data );

}

},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php中__autoload()方法详解

原文地址:http://www.php100.com/html/php/lei/2013/0905/5267.html[导读] PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个…

python读取sql_从python读取sql的实例方法

从python读取sql的方法: 1、利用python内置的open函数读入sql文件; 2、利用第三方库pymysql中的connect函数连接mysql服务器; 3、利用第三方库pandas中的read_sql方法读取传入的sql文件即可。 python 直接读取 sql 文件,达到使用 …

我笨,但我不傻

2019独角兽企业重金招聘Python工程师标准>>> 威哥说:很多朋友给我留言,在学习的过程中如何坚持下去,关于努力和目标,我想谈谈自己的理解,有不同见解的地方,欢迎留言跟我探讨哈。 if(努力苦逼) r…

GNU make manual 翻译( 一百零四)

继续翻译 4.7 Rules without Recipes or Prerequisites If a rule has no prerequisites or recipe, and the target of the rule is a nonexistent file, then make imagines this target to have been updated whenever its rule is run. This implies that all targets dep…

mysql 数字 除以 一万_腾讯股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据...

腾讯股票接口:大单数据http://stock.finance.qq.com/sstock/list/view/dadan.php?tjs&csz002451&max80&p1&opt10&o0opt10 11 12 13 分别对应成交额大于等于(100万 200万 500万 1000万)opt1,2,3,4,5,6,7,8 分别对应成交量大于等于(100手 200手 …

asp.net url传值,弹窗

一,<a>标签链接式传值 1&#xff0c; <a href"News_list.aspx?ClassID<%#((DataRowView)Container.DataItem)["ClassID"]%>&Editor<%#((DataRowView)Container.DataItem)["Editor"]%>" >传值</a> 2, <a&g…

windows下python视频加速调节_Windows下python+ffmpeg实现批量提取、切割视频中的音频...

废话不说&#xff0c;直接上代码 #遍历所有mp4文件名->文件名改为字母形式->fffmpeg批量提取音频、切割音频->改回中文名 import os import subprocess current os.getcwd() dirs os.listdir(current) for i in dirs: if os.path.splitext(i)[1] ".mp4":…

(转)千万别熬夜:身体器官晚上工作时间表一览

原文连接&#xff1a;http://jiuyinguan.blog.163.com/blog/static/20907903720126801015713/ 任何试图更改生物钟的行为&#xff0c;都将给身体留下莫名其妙的疾病&#xff0c;20、30年之后再后悔&#xff0c;已经来不及了。 一、晚上9-11点为免疫系统&#xff08;淋巴&#x…

伯纳德•罗森伯格先生参加华为技术2016首届国际光电连接技术研讨会

近日&#xff0c;来自罗森伯格德国总部的CTO首席技术官伯纳德罗森伯格先生参加了由华为技术组织的2016首届国际光电连接技术研讨会。本届研讨会华为共邀请了来自全球的约十家著名光电技术领先厂家及合作伙伴参与&#xff0c;共同探讨未来数十年的光纤电子技术发展方向并分享最新…

如何使用python效率_Python的5中提高效率的用法

任何编程语言的高级特征通常都是通过大量的使用经验才发现的。比如你在编写一个复杂的项目&#xff0c;并在 stackoverflow 上寻找某个问题的答案。然后你突然发现了一个非常优雅的解决方案&#xff0c;它使用了你从不知道的 Python 功能&#xff01;这种学习方式太有趣了&…

记“debug alipay”一事

背景&#xff1a;客户支付成功&#xff0c;无法返回支付结果 查找原因&#xff0c;追踪代码: verified AlipayNotify.verify(params,alipayConfig.sign_type,alipayConfig.partner,alipayConfig.key,alipayConfig.input_charset); if (!verified) { Debug.logError("##…

Xamarin 跨移动端开发系列(01) -- 搭建环境、编译、调试、部署、运行

&#xff08;本文是基于老版本的VS和Xamarin&#xff0c;而VS2017已经集成了Xamarin&#xff0c;所以&#xff0c;本文已经过时&#xff0c;最新的Xamarin开发介绍请参见 使用 Xamarin开发手机聊天程序 。&#xff09; 如果是.NET开发人员&#xff0c;想学习手机应用开发&#…

内网穿透 无需公网ip_无需端口映射、无需公网IP,60秒实现FTP服务远程访问

互联网的一大特点是实现信息共享&#xff0c;其中文件传输是信息共享十分重要的内容之一。科技公司更是离不开它。销售、库存、客户资料等等数据需要随时共享同步。当需要考虑到文件传输安全、传输质量、传输稳定性、访问控制等诸多因素时&#xff0c;FTP服务器就成了解决文件传…

mysql查询的时候会涉及到锁_Mysql 查询 锁的问题?

以下五种方法可以快速定位全局锁的位置&#xff0c;仅供参考。方法1&#xff1a;利用 metadata_locks 视图此方法仅适用于 MySQL 5.7 以上版本&#xff0c;该版本 performance_schema 新增了 metadata_locks&#xff0c;如果上锁前启用了元数据锁的探针(默认是未启用的)&#x…

Clojure:导入lein项目到IntelliJ IDEA

首先&#xff0c;我们需要先创建一个lein项目&#xff08;废话。。&#xff09; lein new [项目名称] 然后生成Maven的pom.xml文件 cd [项目目录]lein pom 最后&#xff0c;在InteliJ IDEA中选择导入Maven项目&#xff0c;选择刚刚生成的pom.xml文件即可。 转载于:https://www.…

git 工具_Github开源工具分享之自托管GIT服务工具Gogs

介绍Gogs项目旨在构建一种简单&#xff0c;稳定和可扩展的自托管Git服务&#xff0c;该服务可以通过最轻松的方式进行设置。使用Go语言开发的git自托管服务&#xff0c;部署十分简单&#xff0c;可以在Go支持的所有平台(包括Linux&#xff0c;macOS&#xff0c;Windows和ARM)上…

Mariadb 二进制半自动安装脚本

Mariadb 二进制半自动安装脚本系统环境&#xff1a;centosx86_64Mariadb版本&#xff1a;mariadb-5.5.36-linux-x86_64#!/bin/bash#auth:code7#description:auto-mariadb#version:1.0groupadd -r -g 306 mysqluseradd -r -g 306 -u 306 mysql#创建mysql的组和用户tar -xvf mari…

hdu 4414 Finding crosses

http://acm.hdu.edu.cn/showproblem.php?pid4414 简单枚举 代码&#xff1a; #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <queue> #include <vector> #include <algorithm>#define LL …

mysql皮秒转成年月日时分秒_MySQL performance_schema 中 TIMER_*类字段 的易读转换

performance_schema中有很多的表(语句信息表&#xff0c;事务信息表等)记录执行的SQL的具体信息&#xff0c;执行事务的具体信息&#xff0c;其中都会有一个叫做TIMER_START的字段&#xff0c;这个字段的值易读性很差&#xff0c;官方文档说是皮秒&#xff0c;但也没说怎么转成…

c++函数相关

1&#xff0c;内连函数 inline 返回值类型 函数名&#xff08;形参列表&#xff09; 普通函数成为内连函数&#xff1a;在普通函数声明之前加上inline 成员函数成为内连函数&#xff1a;在类中定义的函数全部默认为内连函数&#xff0c;可以显示加上inline或者不加&#xff1b;…