一、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对象转换成字符串,值转换成字符串,字符串转成值的更多相关文章

  1. json里的日期字符串 怎么 转换成 javascript 的 Date 对象?

    “/Date(1232035200000)/” 怎么转换成  javascript 的 Date 对象 做法:new Date(+/\d+/.exec(value)[1]); value就是json字 ...

  2. Java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json

    对象转换为Json 对象bean转换为Json List集合转换为Json 对象数组转换为Json Map集合转换为Json Set集合转为Json 字符串转换为Json 把Java对常用的一些数据转 ...

  3. 使用jquery将表单自动封装成json对象 /json对象元素的添加删除和转换

    $.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function ( ...

  4. Java对象 json之间的转换(json-lib)

    在这里主要简单的介绍一下,如何使用json-lib这个工具包来完成Java对象(或集合)与json对象(或集合)之间的转换~ 1. Java对象转换成json(既创建json) 关键类:JSONObj ...

  5. Json字符串解析原理、超大json对象的解析

    概述 附上完整的代码:https://pan.baidu.com/s/1dEDmGz3(入口类是Json)JSON:JavaScript 对象表示法(JavaScript Object Notatio ...

  6. JSON的String字符串与Java的List列表对象的相互转换

    1.JSON的String字符串与Java的List列表对象的相互转换 在前端: 1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为jso ...

  7. python中自定义类对象json字符串化的方法

    1. 用 json 或者simplejson 就可以 2.定义转换函数: def convert_to_builtin_type(obj): print 'default(', repr(obj), ...

  8. JSON 字符串转换为JavaScript 对象.JSON.parse()和JSON.stringify()

    使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象: var text = '{ "sites" : [' + '{ &qu ...

  9. 解决fasterxml中string字符串转对象json格式错误问题

    软件152 尹以操 springboot中jackson使用的包是fasterxml的.可以通过如下代码,将一个形如json格式string转为一个java对象: com.fasterxml.jack ...

随机推荐

  1. 数据访问(DAO)

    那些年,到处刮起了业务处理分层的大风,无论何时何地,都有某MVC框架.Spring管理的Service.以及iBatis和Hibernate等代表的DAO,SSH.SSI等成了标准.然而,我们仔细研究 ...

  2. GDB 的使用

    gdb使用: 1.编译时必须加-g选项,生成调试需要的信息.如 g++    xxx.cpp   -o   xxx    -g 2.调试最好结合core文件 3.调试命令:gdb   xxx    x ...

  3. Jetson TX2上的demo(原创)

    Jetson TX2上的demo 一.快速傅里叶-海动图 sample The CUDA samples directory is copied to the home directory on th ...

  4. 常用的几个PHP加密函数

    1.前言 PHP加密方式分为单项散列加密,对称加密,非对称加密这几类. 像常用的MD5.hash.crypt.sha1这种就是单项散列加密,单项散列加密是不可逆的. 像URL编码.base64编码这种 ...

  5. 从一道Python面试题说起(大神勿入)

    作为一个自学Python的小白,在了解了点皮毛之后,便按捺不住自己内心的骚动,在某招聘网站上投了些简历,居然也收到了面试邀请.第二天到公司,HR废话不多讲,上来就抛出几张A4纸,"先做题吧, ...

  6. ipython的用法详解

    ipython是一个升级版的交互式python命令行工具. ipython安装 pip install ipython 等到命令执行完成后显示successfully表示完装成功 在命令提示符下输入i ...

  7. Go笔记-继承

    [Go中继承的实现]     当一个匿名类型被内嵌在结构体中时,匿名类型的可见方法也同样被内嵌,这在效果上等同于外层类型 继承 了这些方法:将父类型放在子类型中来实现亚型 package main i ...

  8. BZOJ 4408: [Fjoi 2016]神秘数 [主席树]

    传送门 题意: 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13},8无法表示为集合S的子集的和,故集合S的神秘数为8.现给定n个正整数a[1]. ...

  9. BZOJ 2004: [Hnoi2010]Bus 公交线路 [DP 状压 矩阵乘法]

    传送门 题意: $n$个公交站点,$k$辆车,$1...k$是起始站,$n-k+1..n$是终点站 每个站只能被一辆车停靠一次 每辆车相邻两个停靠位置不能超过$p$ 求方案数 $n \le 10^9, ...

  10. 【非原创】C++类成员函数的重载、覆盖和隐藏

    链接:https://www.nowcoder.com/questionTerminal/266d3a6d4f1b436aabf1eff3156fed95来源:牛客网 题目:类成员函数的重载.覆盖和隐 ...