JS中操作JSON总结

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。

本文主要是对JS操作JSON的要领做下总结。

在JSON中,有两种结构:对象和数组。

1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:

var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};

2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。

例如:

var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];

为了方便地处理JSON数据,JSON提供了json.js包,下载地址:http://www.json.org/json.js

在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:

JSON字符串:

var str1 = ‘{ "name": "cxh", "sex": "man" }‘;

JSON对象:

var str2 = { "name": "cxh", "sex": "man" };

一、JSON字符串转换为JSON对象

要运用上面的str1,必须运用下面的要领先转化为JSON对象:

//由JSON字符串转换为JSON对象

var obj = eval(‘(‘ + str + ‘)‘);

或者

var obj = str.parseJSON(); //由JSON字符串转换为JSON对象

或者

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象

然后,就可以这样读取:

Alert(obj.name);

Alert(obj.sex);

特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。

二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。

例如:

var last=obj.toJSONString(); //将JSON对象转化为JSON字符

或者

var last=JSON.stringify(obj); //将JSON对象转化为JSON字符

alert(last);

留心:

上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。

js对象与json对象的相互转换

    <script>    

       //js对象(student)
        var student = new Object();
        student.name = "Lanny";
        student.age = "25";
        student.location = "China";
        console.log(student);

        //将js对象转化为JSON字符
        var last1=JSON.stringify(student);
        console.log(last1);
        console.log(typeof last1);//输出last1的类型
        console.log(‘--------------------------‘);
        //由JSON字符串转换为JSON对象/js对象
        var obj1 = eval(‘(‘ + last1 + ‘)‘);
        var obj2 = JSON.parse(last1);
        console.log(obj1);
        console.log(typeof obj1);
        console.log(obj2);
        console.log(typeof obj2);

    </script>

  效果图:

json字符串与json对象的相互转换

    <script>
        //JSON字符串:
        var str1 = ‘{ "name": "cxh", "sex": "man" }‘;
        console.log(str1);
        console.log(typeof str1);
        //JSON对象:
        var str2 = { "name": "cxh", "sex": "man" };
        console.log(str2);
        console.log(typeof str2);
        console.log(‘--------------------------‘);
        //将js对象转化为JSON字符
        var last1=JSON.stringify(str2);
        console.log(last1);
        console.log(typeof last1);//输出last1的类型
        console.log(‘--------------------------‘);
        //由JSON字符串转换为JSON对象
        var obj1 = eval(‘(‘ + last1 + ‘)‘);
        var obj2 = JSON.parse(str1);
        console.log(obj1);
        console.log(typeof obj1);
        console.log(obj2);
        console.log(typeof obj2);
    </script>

  效果图:

参考链接:

  https://www.cnblogs.com/gygtech/p/8669602.html

  https://zhidao.baidu.com/question/750266190766969252.html

原文地址:https://www.cnblogs.com/wwct/p/12398220.html

时间: 2024-10-15 21:49:58

JS中操作JSON总结的相关文章

在js中 把 json对象转化为String对象的方法

方法1: 使用js的扩展方法 ** * json对象转字符串形式 */ function json2str(o) { var arr = []; var fmt = function(s) { if (typeof s == 'object' && s != null) return json2str(s); return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s; } for (v

JS中:json对象数组按对象属性排序

var array = [ {name: 'a', phone: 1}, {name: 'b', phone: 5}, {name: 'd', phone: 3}, {name: 'c', phone: 4} ] array.sort(getSortFun('desc', 'phone')); function getSortFun(order, sortBy) { var ordAlpah = (order == 'asc') ? '>' : '<'; var sortFun = new F

js中的json对象详细介绍

JSON一种简单的数据格式,比xml更轻巧,在JavaScript中处理JSON数据不需要任何特殊的API或工具包,下面为大家详细介绍下js中的json对象, 1.JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包. JSON的规则很简单:对象是一个无序的“‘名称:值'对”集合.一个对象以“{”(左括号)开始,“}”(右括号)结束

js中定义json生成Tree树

这里说名的是js中生成json       arry是js中定义的json 树插件是jquery.ztree var param = { }; $.post("manager_treeList", param, function(data) { //循环列表 var setting = { view: { dblClickExpand: false, showLine: true, selectedMulti: false }, data: { simpleData: { enable

MVC中处理Json和JS中处理Json对象

事实上,MVC中已经很好的封装了Json,让我们很方便的进行操作,而不像JS中那么复杂了. MVC中: public JsonResult Test() { JsonResult json = new JsonResult { Data = new { Name = "zzl", Sex = "male", } }; return Json(json); }   public JsonResult TestList() { List<User> user

js中把JSON字符串转换成JSON对象最好的方法

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明. 这里首先

js中解析json时候的eval和$.parseJSON()的区别以及JSON.stringify()

1.第一个区别是:安全性 json格式非常受欢迎,而解析json的方式通常用JSON.parse()但是eval()方法也可以解析,这两者之间有什么区别呢?      JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的 如: var str = 'alert(1000.toString())'; eval(str); JSON.parse(str);  用eval可以解析,并

关于JS中的JSON

昨天按老大的要求,制作一功能,里面有一个需要从jsp页面封装参数的地方,如下 之前我自己写的时候,每个value值,我没有给他们加双引号(单引号),然后界面一直出不来,而且也不报错,在这个一块花费了很长的时间,老大看不下去了,来到我这看了下代码,一下子就指出这说"你这value怎么没有加双引号啊,这样js会将它们当做一个变量,而不是字符串对象,那些数字可以不用加,但是一些字符串需要加双引号才行!!!"加上双引号之后,界面立马就出来了....果然是老大,在这,我也注意到了加不加双引号在j

js之操作JSON数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包. 本文主要是对JS操作JSON的要领做下总结. 在JSON中,有两种结构:对象和数组. 1. 一个对象以“{”(左括号)开始,“}”(右括号)结束.每个“名称”后跟一个“:”(冒号):“‘名称/值’ 对”之间运用