js简单遍历解析json字符串

前两天接触到前台的json字符串遍历拼接于是就翻了一些资料总结了一下遍历取值的方法,如有不对请指正,感谢阅读!!

先上json串

{
“list”: [
{
“password”: “1230”,
“username”: “zhangsan”
},
{
“password”: “1230”,
“username”: “wangwu”
}
],
“list2”: [
{
“password”: “123456”,
“username”: “lisi”
}
],
“line1”: “xasx”,
“line2”: “axaxa”
}

**json数组,嗯,数组,归根结底就是一个数组。

下面提供两种遍历方式**

  1. in的遍历取值方式,这个真的比较麻烦比较适用于不知道json结构的key情况下遍历取值
    window.onload = function(){let str = "{\"list\":[{\"password\":\"1230\",\"username\":\"zhangsan\"},{\"password\":\"1230\",\"username\":\"wangwu\"}],\"list2\":[{\"password\":\"123456\",\"username\":\"lisi\"}],\"line1\":\"xasx\",\"line2\":\"axaxa\"}";let parseJson = JSON.parse(str);for (let strKey in parseJson) {   /*遍历外层取到外层键 list line1等等*/console.log("外层键:" + strKey);/*打印外层的键*/let  value = parseJson[strKey]; /*如果根据键取到的值还是json类型(此处判断为object类型)咱接着遍历*/if (typeof value =="object"){for (let likey in value){console.log("list的键"+likey);/*此时键为int组键就为0,1*/console.log(value[likey]); /*先打印一下*/var llivalue = value[likey];for (let llikey in llivalue){  /*对里层的json数组进行遍历打印*/console.log("list的里层键"+llikey);console.log("list的里层值"+llivalue[llikey]);}}}else{console.log("外层值"+ parseJson[strKey]);/*如果根据键取到值为普通类型如键line1 line2直接取到值了 就直接打印*/}}console.log("以上为in方式遍历json数组并取对应的值=========================================");}

打印结果:

2. for的遍历打印方式这个比较简单比较适用于知道json结构(key)的遍历取值

    window.onload = function(){let str = "{\"list\":[{\"password\":\"1230\",\"username\":\"zhangsan\"},{\"password\":\"1230\",\"username\":\"wangwu\"}],\"list2\":[{\"password\":\"123456\",\"username\":\"lisi\"}],\"line1\":\"xasx\",\"line2\":\"axaxa\"}";let parseJson = JSON.parse(str);/*打印内嵌套json类型的json数据 list,list1等*/for (var i =0;i<parseJson.list.length;i++){   /*list的遍历取值*/console.log(parseJson.list[i]); /*先打印一下具体的json结构*/console.log(parseJson.list[i].username); /*再取具体的值*/console.log(parseJson.list[i].password);}    /*list1和list的的遍历取值一样就不写了*//*打印普通的key-value类型数据*/console.log(parseJson.line1);console.log(parseJson.line2);console.log("以上为for方式遍历json==================================");}

打印结果:

总结:
虽然现在很多框架(vue框架等等)直接就能取值了,但是原生的json遍历解析还是要复习下的万一使用了呢,个人倾向于使用第二种for的方式,因为大多数情况下json字符串的结构还是很清晰的!加油,陌生人,越努力越幸运!

js简单遍历解析json字符串相关推荐

  1. JS/JavaScript中解析JSON --- JSON.parse()、JSON.stringify()以及$.parseJSON()使用详解

    JS/JavaScript中解析JSON --- JSON.parse().JSON.stringify()以及$.parseJSON()使用详解 现在JSON格式在web开发中非常重要,特别是在使用 ...

  2. jquery parseJSON()方法解析json字符串

    在web项目开发中,前端经常需要接收后端传送来的json数据,解析json字符串,再对页面进行渲染.使用jquery解析json字符串通常需要将json字符串转化为javascript的json对象( ...

  3. js解析json字符串、对象与json之间的转换

    前言 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键. js解析json字符串 // JSON字符串 'v ...

  4. js使用eval解析json(js中使用json)

    eval的用法eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句,下面给出eval解析json的示例 先来说eval的用法,内容比较简单,熟悉的可以跳过 eval函数接收一个参 ...

  5. c#解析json字符串处理清晰易懂的方法

    JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串. 操作JSON通常有以下几种方式: 1. 原始方式:按照JSON字符串自己来解析. 2. 通用方式[★★★★★]: ...

  6. cjson构建_[置顶] cJSON库(构建json与解析json字符串)-c语言

    一.c语言获取json中的数据. 1.先要有cJOSN库,两个文件分别是cJSON.c和cJSON.h. 2.感性认识 char * json = "{ \"json\" ...

  7. php 读取 js json格式数据,js读取和解析JSON数据的方法

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  8. javascript解析json字符串,各种格式分析

    javascript解析json字符串,各种格式分析 JS,JSON,EVAL函数说明 JSON.parse(字符串) 方法用于将一个 JSON 字符串转换为对象 JSON.stringify(对象或 ...

  9. C#解析JSON字符串总结

    C#解析JSON字符串总结 JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串. 操作JSON通常有以下几种方式: 1. 原始方式:按照JSON字符串自己来解析. 2 ...

最新文章

  1. Gartner2014年魔力象限(商业智能和分析平台)
  2. 自动生成Android界面,面向Android的Web Service界面自动生成技术研究
  3. 手机1像素线粗_关于移动端开发 1px 线的一些理解和解决办法
  4. 利用Caffe实现mnist的数据训练
  5. windows server 2012 R2 standard 评估版过期重启
  6. 网络监控工具--ntop
  7. 什么时候用removeUnusedSpriteFrames和removeUnusedTextures
  8. JAVA实现的支付宝扫描二维码支付
  9. 应对互联网变局,这 8 件事必须要做。
  10. 自己开店用什么收银系统好-纳客收银系统
  11. 读书笔记-人月神话16
  12. qq四国军旗2.1 beat03 builde017记牌器开发思路(二)
  13. [博弈论]JZOJ 3339 wyl8899和法法塔的游戏
  14. W806+ST7735R+tftLCD程序开发
  15. 超强的苹果官网滚动文字特效实现
  16. 推荐几个高质量的程序员 B 站视频账号
  17. 升级 glibc 到2.18版本
  18. 抖音关闭单身开启恋爱模式设置教程分享
  19. python3教程合集
  20. c++开源协程库libgo介绍及使用

热门文章

  1. 决策树可视化工具——Graphviz安装(Windows下)
  2. 英雄联盟怎么窗口化 lol窗口模式怎么移动缩小
  3. java使用递归迭代实现流程图展示(仅供参考)
  4. kubernates 实践
  5. JZOJ5937. 【NOIP2018模拟10.30】斩杀计划
  6. C++ vector排序
  7. PS扣取比较复杂的头发
  8. 服务器断开占用,绝地求生全军出击服务器断开怎么办 掉线解决方法
  9. Educoder 机器学习之随机森林算法 第2关:随机森林算法流程
  10. 照片怎么改大小300k?图片怎么压缩到指定大小?