json的理解概要

字符串转成对象,对象转成字符串:

JSON.parse( json) <===> JSON.stringify( json )
jQuery.parseJSON(json) (这个是jquery中的方法)

根据key获取value两种方式

var value1 = eval("jsonObj." + "家电"); // value1 = 40
var value2 = jsonObj["家电"];  // value2 = 40 设置key的属性的值
jsonObj["西门子"] = 100;删除key和值
deledte jsonObj["海尔"];

遍历json对象(for …in 与 for … of)

区别:for…in 遍历对象的时候是遍历属性key.,遍历数组对象的时候是遍历下标index。

for …of 遍历数组的时候实际上遍历的是元素value,适合用这个。要遍历json对象的话最好转成数组之后再用for …of

let iterable = [3, 5, 7];
for (let i in iterable) {console.log(i);  //  0, 1, 2
}for (let i of iterable) {console.log(i); // 3, 5, 7
}

//第一种:for ...in
var packJson = {"name":"Liza", "password":"123"} ;
for(var k in packJson ){//遍历packJson 对象的每个key/value对,k为keyalert(k + " " + packJson[k]);
}//第二种: for...of
var  obj = {a:1, b:2, c:3};
for (let key of Object.keys(obj)) {  // Object.keys(),把json对象的key转成了数组。console.log(key+":"+ obj[key]  );
}
//打印: a :1    b :2    c: 3

合并多个json对象:Object.assign

函数定义:target 目标对象,sources 源对象 (可以有多个)。
可以合并多个对象到一个对象中, 返回target。此方法会同时修改target对象

特点

覆盖:如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性。对前面的例子做修改如下:

Object.assign(target: object, ...sources: any[]): any;
//合并多个json对象
const o1 = { a: 1 };
const o2 = { b: 2 };
const o3 = { c: 3 };
const obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1);  // { a: 1, b: 2, c: 3 }, 注意目标对象o1自身也会改变。//合并具有相同属性的对象:属性被后续参数中具有相同属性的其他对象覆盖。
const o1 = { a: 1, b: 1, c: 1 };
const o2 = { b: 2, c: 2 };
const o3 = { c: 3 };
const obj = Object.assign({}, o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }

Object.keys

const keys= Object.keys(options); //只获取json对象的属性key,返回一个存所有key的数组。

var obj1 = {name: "Tom", age: 23};
let keys=Object.keys(obj1); // ["name","age"]

展开语法合并多个json对象

var obj1 = {name: "Tom", age: 23};
var obj2 = {name: "Tom", age: 24};var obj = {sex: "Man", ...obj1, ...obj2}
console.log(obj); // { sex: 'Man', name: 'Tom', age: 24 }

对json形式数据的数组去重

let list = [{   id: "1", content: "A" },{  id: "2",  content: "B" },{ id: "2",  content: "C" },{ id: "4",  content: "D" }];function Unique(arr){let  result = [];for (let i = 0; i < arr.length; i++) {let flag = true;let temp = arr[i];for (let j = 0; j < result.length; j++) {if (temp.id === result[j].id) {flag = false;break;}}if(flag){result.push(temp);}}return result;}

js对json对象的遍历和其他方法处理相关推荐

  1. Java、JS解析JSON对象、JSON数组

    一:三种JSON格式 基本类型 {"student": "张三","age": 18,"sex": true } 数组类 ...

  2. JavaScript 正则表达式 处理json,json对象的遍历和处理

    //********* https://www.runoob.com/js/js-regexp.html ****// 正则表达式.exec( ) new RegExp("\\{" ...

  3. JS 将JSON对象转换为字符串

    effectRow["inserted"] = JSON.stringify(inserted); JS 将JSON对象转换为字符串 转载于:https://www.cnblogs ...

  4. json对象的遍历(C++)

    在使用C++的项目中,对json进行解析时,如果对象列表过长,通常就需要对对象进行遍历,来实现解析. 我参看了博客,如下: https://blog.csdn.net/hellokandy/artic ...

  5. JS转json对象为格式化json字符串

    JS转json对象为格式化json字符串 JSON.stringify(jsonObj, null, 4)

  6. XE3随笔6:SuperObject 的 JSON 对象中还可以包含 方法

    SuperObject 的 JSON 对象中还可以包含 "方法", 这太有意思了; 其方法的格式是: procedure Method(const This, Params: IS ...

  7. js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法

    js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法 示例 1.基础版 var a = { id: 18, age: 20, name: "zhangsan" ...

  8. json数组 js html标签,js定义json对象数组 json 数组也是数组 //

    var jsonstr="[{'name':'a','value':1},{'name':'b','value':2}]"; var jsonarray = eval('('+js ...

  9. JSON Stringify示例–如何使用JS解析JSON对象

    There are so many programming languages, and every language has its own features. But all of them ha ...

最新文章

  1. SQL Server日志清除的两种方法 .
  2. 在vue-cli项目中使用echarts
  3. JavaScript实现InsertionSort插入排序算法(附完整源码)
  4. struts文件上传时异常问题
  5. spring项目概念-BeanFactoryApplicationContext
  6. OpenJTAG调试S3C2440裸板程序
  7. vux 使用 font-awesome
  8. Apache Zookeeper入门1
  9. mac远程redis_「实战篇」开源项目docker化运维部署-redis高速缓存(六)
  10. spring如何实现注入
  11. Echarts 折线图最后一个点发光闪烁效果
  12. 【C++/Python 双语言实现】Luogu5092 Cube Stacking
  13. php中字符串分割函数是,php分割字符串的函数是什么
  14. 微信小程序-canvas 2d带动画的半圆形刻度进度条
  15. VLAN 主干道配置
  16. 食盐详细 制造工艺、等级划分、国家标准号和注意事项
  17. AndroidManifest.xml详解(上)
  18. python3 实现公众号自动发消息
  19. 高考数学90分能学好计算机,我平时数学考试总考60多分,离高考还有一个月,我希望能通过努力考到90分,诸位有何好的方法...
  20. 一个 Android 的视频编辑器,包括了视频录制、剪切、增加 bgm、美白、加滤镜、加水印等多种功能

热门文章

  1. 使用CAD旋转复制命令绘制图形
  2. 使用jlink解锁被锁住的芯片
  3. collapse 微信小程序_详解优化你的微信小程序
  4. JAVA开发环境配置指南
  5. 设置为默认短信应用四个步骤
  6. 火星坐标gcj02、百度坐标bd09II、WGS84坐标相互转换及墨卡托转经纬度百度墨卡托bd09mc
  7. 图像处理之HOG特征提取
  8. 老照片修复matlab程序,‎App Store 上的“老照片修复”
  9. 通过bat批处理命令进行adb push批量拉取文件
  10. VISHAY(威世通)样片申请与经验