json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值
一、json相关概念
json,全称为javascript object notation,是一种轻量级的数据交互格式。采用完全独立于语言的文本格式,是一种理想的数据交换格式。
同时,json是javascript是原生格式,所以javascript操作处理json不需要任何包,api,任何依赖。
json中有两个结构:(1)数组(2)对象
(1)什么是数组
数组就是以"["开始,以“]”结束的,值之间运用 “,”(逗号)分隔。
比如:
[{ "key": "test1", "value": 123, "type": "number", "required": "true", "description": "字段描述2", "children": [] }, { "key": "test2", "value": 345, "type": "boolean", "required": "true", "description": "字段描述4", "children": [] }]
children是一个数组,数组里有两个值,值也就是一个对象。
(2)什么是对象
对象就是以“{”开始,以“}”结束的,后边跟着每一对键值,键与值之间使用冒号分隔开。如果值是字符,则必须用引号,数值型则不须要。
{ "key": "test1", "value": 123, "type": "number", "required": "true", "description": "字段描述2", "children": [] }
在数据传输中,json是以文本,即字符串的形式传递的,而js操作json对象,所以json对象和json字符串之间的转换是关键。
(3)字符串和json对象栗子
json字符串
var str1 = '{ "key": "test1", "value": 123, "type": "number", "required": "true", "description": "字段描述2", "children": [] }'
就是在对象的基础上前后加上‘,’。
json对象:
var str2 = { "key": "test1", "value": 123, "type": "number", "required": "true", "description": "字段描述2", "children": [] }
二、json字符串转换成json对象 (字符串-->JSON对象)
方法有三种:转换函数,jq的转换函数,eval()方法
方法1--转换函数:JSON.parse()方法
var a = '{"a":2}'; JSON.parse(a); //{a:2}
注意:IE8(兼容模式)ok,但是IE6和IE7没有JSON对象,需要额外引入json.js或者json2.js。
方法2:parseJSON()方法 ,将字符串转换成非字符串
用的是jquery的插件
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
反过来,使用 serialize 系列方法:如:var fields = $("select, :radio").serializeArray();
方法3:eval()方法
eval()函数可计算某一个字符串,并执行其中的javascript代码。
var s = '{a:2}'; eval('(' + s + ')'); //将json字符串转成json对象,需要在字符串外包裹一对括号(), {a:2}
注意事项:IE8(兼容模式),IE7和IE6也可以使用eval()方法将字符串转成json对象,但是不推荐使用,因为这种方式不安全eval会执行接送字符串的表达式.
图中a的值对应的是表达式2+4,当执行eval()方法时候,已经把表达式的值计算出来了,值为6。
三、json对象转换成字符串(json对象-->字符串)
方法--转换函数:JSON.stringify()方法 ,将非字符串转成字符串。
var s = {'a':2}; JSON.stringify(s); //"{"a":2}"
四、将值转换成字符串(值-->字符串)
方法有三种:转换函数toString(),弱类型转换,强制类型转换
方法1--转换函数:value.toString() 将数值转成对应进制的字符串
var n =8; n.toString(几进制);
注意:不能将null和undefined转换成字符串
方法2--弱类型转换:value + '' 将值转换成字符串
2+ ''
注意:使用加法运算法,配合一个空的字符串,缺点是可读性差
方法3--强制类型转换:String(value)
String(2)
五、字符串转成值(字符串-->值)
方法有三种:转换函数,强制类型转换,js变量弱类型转换
在js读取文本框或者其它表单数据的时候获得的值是字符串类型的。
方法1--转换函数:parseInt()和parseFloat()
parseInt("1234blue"); //returns 1234 parseInt("22.5"); //returns 22 parseInt("blue"); //returns NaN
parseInt("AF", 16); //returns 175 parseInt("10", 2); //returns 2
parseFloat("1234blue"); //returns 1234.0 parseFloat("22.5"); //returns 22.5 parseFloat("blue"); //returns NaN
方法2--强制类型转换
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
Number(false) 0 Number(true) 1 Number(undefined) NaN Number(null) 0 Number( "5.5 ") 5.5 Number( "56 ") 56 Number( "5.6.7 ") NaN
方法3--js弱类型转换
var str= '012.345 '; var x = str-0; //输出12.345
先看一下上面的例子,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的;
PS:小数的四舍五入
1、四舍五入
var num =2.4492425542; num = num.toFixed(2); // 输出结果为 2.45
2、不四舍五入
把小数变成整数
Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77
当成字符串,使用正则匹配
Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/)) // 输出结果为 15.77,不能用于整数如 10 必须写为10.0000
注意:如果是负数,请先转换为正数再计算,最后转回负数
json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值的更多相关文章
- json里的日期字符串 怎么 转换成 javascript 的 Date 对象?
“/Date(1232035200000)/” 怎么转换成 javascript 的 Date 对象 做法:new Date(+/\d+/.exec(value)[1]); value就是json字 ...
- Java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
对象转换为Json 对象bean转换为Json List集合转换为Json 对象数组转换为Json Map集合转换为Json Set集合转为Json 字符串转换为Json 把Java对常用的一些数据转 ...
- 使用jquery将表单自动封装成json对象 /json对象元素的添加删除和转换
$.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function ( ...
- Java对象 json之间的转换(json-lib)
在这里主要简单的介绍一下,如何使用json-lib这个工具包来完成Java对象(或集合)与json对象(或集合)之间的转换~ 1. Java对象转换成json(既创建json) 关键类:JSONObj ...
- Json字符串解析原理、超大json对象的解析
概述 附上完整的代码:https://pan.baidu.com/s/1dEDmGz3(入口类是Json)JSON:JavaScript 对象表示法(JavaScript Object Notatio ...
- JSON的String字符串与Java的List列表对象的相互转换
1.JSON的String字符串与Java的List列表对象的相互转换 在前端: 1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为jso ...
- python中自定义类对象json字符串化的方法
1. 用 json 或者simplejson 就可以 2.定义转换函数: def convert_to_builtin_type(obj): print 'default(', repr(obj), ...
- JSON 字符串转换为JavaScript 对象.JSON.parse()和JSON.stringify()
使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象: var text = '{ "sites" : [' + '{ &qu ...
- 解决fasterxml中string字符串转对象json格式错误问题
软件152 尹以操 springboot中jackson使用的包是fasterxml的.可以通过如下代码,将一个形如json格式string转为一个java对象: com.fasterxml.jack ...
随机推荐
- python3 第十八章 - 迭代器与生成器
1.迭代器(Iterator) 迭代是访问集合元素的一种方式 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 迭代器 ...
- git 签出(恢复)指定文件
在项目开发中,偶尔会因为误删文件或其他原因需要从git仓库中恢复某些文件.此篇文章将介绍如何通过git从历史提交记录.分支记录恢复指定文件. 1. git checkout 说明:使用git chec ...
- httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName
问题原因: httpd服务配置文件,并没有设置解析根地址,无法可靠地确定服务器的完全合格的域名 如何解决? httpd的配置文件放在 /etc/httpd/conf/目录下,去掉ServerName注 ...
- Using $this when not in object context in
错误信息:$this引用没有上下文 原因:在PHP5中,static声明的静态方法里不可以使用$this 需要使用self来引用当前类中的方法或是变量. 引用的方法里不可以带$this(示例代码中为g ...
- 【转】VMware 克隆 Linux 系统后找不到 eth0 网卡问题
[问题描述] 使用 VMware 虚拟机的克隆功能,快速复制已安装好的 Linux 系统. 克隆完成之后,发现没有 eth0 网卡. [解决方法] 1. 编辑 /etc/udev/rules.d/70 ...
- ASP.NET没有魔法——ASP.NET MVC 模型验证
在前面的文章中介绍了用户的注册及登录功能,在注册用户时可以通过代码的形式限制用户名及密码的格式,如果不符合要求那么就无法完成操作,如下图: 该功能的原理是Identity基于的Entity Frame ...
- 从iconfont下载项目所需的图标资源
前端开发中,经常会用到各种各样的图标(icon).这些icon,如果每个都要自己去做,那真的是耗时又耗力.但是,有了阿里巴巴矢量图标库这样的平台后,一切都变得简单了起来. 本文以此平台为例,演示如何搜 ...
- handlebars.js模版引擎随记
前台的模版引擎有许多种,相比较而言 我个人更觉得handlebars更为轻便 首先github上下载自新版本的handelbars.js http://handlebarsjs.com 下载下来之后呢 ...
- Spring的事务管理(理论篇,下篇提供代码实现)
事务:逻辑上的一组操作,这组操作要么全部成功,要么全部失败(事务十大特性:原子性,一致性,隔离性,持久性) 原子性:事务是不可分割的工作单位,事务中的操作要么都发生了,要么都不发生.(也就是说不能单独 ...
- ABP官方文档翻译 6.1.2 MVC视图
ASP.NET MVC 视图 介绍 AbpWebViewPage基类 介绍 ABP通过Abp.Web.Mvc nuget包集成到MVC视图.你可以如往常一样创建正常的MVC视图. AbpWebView ...