对于前端完全是菜鸟,迫于无奈,工作中要用到JS,尤其对JSON的处理为多,网上搜了一下,所讲的基本雷同。所以把平时用的比较多的JSON处理方法总结了一下,权当加深记忆。

一、概述

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

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

1.对象

一个对象以“{”开始,“}”结束。每个“key”后跟一“:”,“‘key/value’ 对”之间运用 “,”分隔。

packJson = {"name":"nikita", "password":"1111"}

2.数组

packJson = [{"name":"nikita", "password":"1111"}, {"name":"tony", "password":"2222"}];

数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间运用 “,”分隔。

二、JSON对象和JSON字符串的转换

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

JSON字符串:

var jsonStr = '{"name":"nikita", "password":"1111"}';

JSON对象:

var jsonObj = {"name":"nikita", "password":"1111"};

对于前端完全是菜鸟,迫于无奈,工作中要用到JS,尤其对JSON的处理为多,网上搜了一下,所讲的基本雷同。所以把平时用的比较多的JSON处理方法总结了一下,权当加深记忆。

一、概述

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

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

1.对象

一个对象以“{”开始,“}”结束。每个“key”后跟一“:”,“‘key/value’ 对”之间运用 “,”分隔。

packJson = {"name":"nikita", "password":"1111"}

2.数组

packJson = [{"name":"nikita", "password":"1111"}, {"name":"tony", "password":"2222"}];

数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间运用 “,”分隔。

二、JSON对象和JSON字符串的转换

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

JSON字符串:

var jsonStr = '{"name":"nikita", "password":"1111"}';

JSON对象:

var jsonObj = {"name":"nikita", "password":"1111"};

2、String转换为Json

var myObject = eval('(' + myJSONtext + ')'); 

eval是js自带的函数,不是很安全,可以考虑用json包。

三、遍历JSON对象

myJson = {"name":"nikita", "password":"1111"};

for(var p in myJson){//遍历json对象的每个key/value对,p为key



alert(p + " " + myJson[p]); }

运行结果:

四、遍历JSON数组

packJson = [

{"name":"nikita", "password":"1111"},

{"name":"tony", "password":"2222"}

];

for(var p in packJson){//遍历json数组时,这么写p为索引,0,1



alert(packJson[p].name + " " + packJson[p].password); }

我更倾向于这种写法:

for(var i = 0; i < packJson.length; i++){

alert(packJson[i].name + " " + packJson[i].password);

}

运行结果:

五、将两个JSON对象组装到一个里面

//targetJson 目标JSON,packJson 被组装JSON

function addGroupJson(targetJson, packJson){
</span><span style="color: #0000ff;">if</span>(targetJson &amp;&amp;<span style="color: #000000;"> packJson){

   </span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">var</span> p <span style="color: #0000ff;">in</span><span style="color: #000000;"> packJson){

       targetJson[p] </span>=<span style="color: #000000;"> packJson[p];

   }

}

}

用法如下:

var json1 = {"name":"nikita"};
var json2 = {"password":"1111"};
addGroupJson(json1, json2);
alert(json2str(json1));

运行结果:

最新文章

  1. PL/SQL设置快捷键
  2. Atitit.java expression fsm 表达式词法分析引擎 v2 qaa.docx
  3. Html5 Egret游戏开发 成语大挑战(二)干净的eui项目和资源准备
  4. translateZ 带来的Z-index 问题
  5. overlay-1
  6. Codeforces Round #332 (Div. 2)
  7. ACM: hdu 2647 Reward -拓扑排序
  8. Siddhi CEP Window机制
  9. jenkins 邮件配置步骤
  10. single page
  11. Android开发人员必知的开发资源
  12. 哈希表之bkdrhash算法解析及扩展
  13. 【Scala】Scala之String
  14. Docker - 手动迁移镜像
  15. [UWP]理解ControlTemplate中的VisualTransition
  16. 第三部分:Android 应用程序接口指南---第二节:UI---第三章 菜单
  17. Laravel创建产品-CRUD之Create and Store
  18. 1.TwoSum
  19. linux消息队列编程实例
  20. memcache.so的报错信息,未解决

热门文章

  1. hibernate的对象状态分析
  2. es6的模块化编程
  3. Gym 100952 D. Time to go back(杨辉三角形)
  4. codeforces 129B students and shoes
  5. Delphi Screen.DataModuleCount 总是返回 0!Delphi 的 Bug? DataModuleCount = 0
  6. NLP —— 图模型(二)条件随机场(Conditional random field,CRF)
  7. 《Unity3D-播放被打中的时候粒子的特效的代码》
  8. vue2 和 webpack 配置环境使用
  9. 蓝桥杯比赛java 练习《立方变自身》
  10. 通过HtppWebRequest发送图片到服务器并保存