JSON对象遍历

车载以太网入坑指南,从小白到懂哥的进阶之路【技术分享】 各位技术大佬们好!最近公司项目涉及到车载以太网,刚开始完全懵逼,花了大半个月时间各种查资料、测试设备,总算是摸清了门道。想着互联网上卧虎藏龙,肯定有不少大佬对这个技术感兴趣,所以写个帖子分享一下,顺便求各位大佬指点。 阅读详情
<div id="out">
输出区域
</div>

1. 简单的JSON对象进行遍历

// 遍历简单json对象
 function traverseJsonSimpleObj(){
      var jsonObj = {"name": "kevin", "age": 27, "sex": "男", "city": "shenzhen"};
      for(var key in jsonObj){
           var html = "<p>"
           html +=  (key + ' : ' + jsonObj[key]);
           html += "</p>";
           $("#out").append(html);
      }
 }

2. 遍历json数组,元素为json对象

function traverseJsonArray(){
      var jsonArray = [{"name": "kevin", "age": 27, "sex": "男", "city": "shenzhen"},
          {"name": "kevin2", "age": 28, "sex": "男", "city": "beijing"}];
      //alert('JSON.stringify(jsonArray) = ' + JSON.stringify(jsonArray));
      for(var i=0; i<jsonArray.length; i++){
           var jsonObj = jsonArray[i];
           for(var key in jsonObj){
            var html = "<p>"
            html +=  (key + ' : ' + jsonObj[key]);
            html += "</p>";
            $("#out").append(html);
       }
       $("#out").append("-----------------------------------------------------");
      }
 }

3. 深度遍历复合Json结构数据

JSON对象里面可以嵌套多层对象(数组或对象),嵌套层数未知
/**
 * 深度遍历
 * 复合的Json结构数据,JSON对象里面可以嵌套多层对象(数组或对象)
 */
 function deepTraverse(json){
  // 1. 变量为json对象:将key输出,value进行递归
     if(isType(json, "Object")){
          for(var key in json){
           $("#out").append(key + ' : ');
           if(isType(json[key], "Array") || isType(json[key], "Object")){
            $("#out").append("下面为子项内容<br/>");
           }
           deepTraverse(json[key]);
          }
     }
     // 2. 变量为json数组:逐个元素递归
     else if(isType(json, "Array")){
          for(var i=0; i<json.length; i++){
               var jsonObj = json[i];
               deepTraverse(jsonObj);
              // 遍历数组中的元素(为json对象)后输出:分隔线+一个换行符
              if(isType(jsonObj, "Object")){
                $("#out").append("------------------------<br/>");
               }
          }
     }
     // 3. 变量为简单数据类型:直接输出(递归函数的终止条件)
     else if(isType(json, "String") || isType(json, "Number") ||
      isType(json,"Boolean") || isType(json,"Null")){
          $("#out").append(json);
          $("#out").append("<br/>");
     }

 }

【说明】递归函数中的【步骤一】和【步骤三】形成一个完整的键值映射输出,发生递归的场景为1和2。

// 辅助函数,JS判断变量类型
/**
  * 判断类型
  * @param obj 判断的变量
  * @param type 预期的类型
  */
  function isType(obj,type){
        return Object.prototype.toString.call(obj) ==="[object "+type+"]";
    }


4. 测试

(4.1) 测试 isType(obj, type)方法

function testType(){
  console.log(isType([],"Array"));
  console.log(isType(1,"Number"));
  console.log(isType("","String"));
  console.log(isType(new Date(),"Date"));
  console.log(isType(function(){},"Function"));
  console.log(isType(new RegExp(),"RegExp"));
  console.log(isType({},"Object"));
  console.log(isType(true,"Boolean"));
  console.log(isType(null,"Null"));
  console.log(isType(undefined,"Undefined"));
 }

(4.2) 测试 JSON数据的遍历

 var json1 = {"options":[{"text":"王家湾","value":null},{"text":"李家湾","value":true},{"text":"邵家湾","value":13}]};

 var simpleJson = {"name": "kevin", "age": 27, "sex": "男", "city": "shenzhen"};
 var jsonArray = [{"name": "kevin", "age": 27, "sex": "男", "city": "shenzhen"},
      {"name": "kevin2", "age": 28, "sex": "男", "city": "beijing"}];

 var complexJson = {"中国南方":
       {"珠三角":
        [{"城市名": "深圳", "发展年限": 25, "简称": "鹏城"},
        {"城市名": "广州", "发展年限": 60, "简称": "羊城"},
        {"城市名": "珠江", "发展年限": 40, "简称": "珠城"}]
       },
      "华中地区":
       {"长三角":
        [{"城市名": "武汉", "发展年限": 80, "简称": "火炉"},
        {"城市名": "宜昌", "发展年限": 79, "简称": "宜家"},
        {"城市名": "咢州", "发展年限": 78, "简称": "小咢"}]
       }
}; 

$(function(){

  //traverseJsonSimpleObj();
  //traverseJsonArray();

  deepTraverse(simpleJson);
  $("#out").append("<hr/>");
  deepTraverse(jsonArray);
  $("#out").append("<hr/>");
  deepTraverse(complexJson);
  $("#out").append("<hr/>");

  deepTraverse(json1);
  $("#out").append("<hr/>");

});
自动化测试与AI的结合应用 自动化测试,人工智能,机器学习,深度学习,测试用例生成,缺陷预测,测试优化 1. 背景介绍 在软件开发领域,自动化测试已成为不可或缺的一部分,它可以提高测试效率、降低测试成本,并确保软件质量。然而,传统的自动化测试方法往往依赖于人工编写的测试用例,这不仅耗时费力,而且难以应对复杂软件 阅读详情

相关推荐

解决AutoDock与Python版本冲突导致的内存泄漏问题:从BHtree *错误到环境配置优化

本文深入解析了AutoDock分子对接中常见的‘BHtree *’内存泄漏错误,其根源在于SWIG接口模块与Python运行环境的版本不匹配。文章提供了根治方案:通过构建Python 2.5.4与MGLTools 1.5.6的黄金兼容组合,并详细指导环境清理、安装配置及实战测试,从而彻底解决该内存泄漏问题,确保AutoDock工作流的稳定运行。

g5h6i的博客 1113

【Arduino】使用ArduinoJson解析数据

使用ArduinoJson解析数据

qq_55493007的博客 5035

Windows11+VS2022驱动开发环境搭建实战:从零到编译(避坑指南)

本文详细介绍了在Windows11系统下使用VS2022搭建驱动开发环境的完整流程,包括版本匹配、工具安装、环境配置及常见问题解决。重点强调了WDK与系统版本的严格匹配,以及VS2022中驱动开发组件的正确配置方法,帮助开发者高效避坑并成功编译第一个驱动程序。

weixin_29251337的博客 526

遍历JSON的三种方法

JSON 一、JSON 语法规则 对象表示为键值对 数据由逗号分隔 花括号保存对象 方括号保存数组 1.JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 “” 包裹,使用冒号 : 分隔,然后紧接着值:{“firstName”: “John”} JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象...

Leonidas的博客 5万+

电阻基础知识及应用电路仿真(Multisim)

本文围绕硬件工程师必备的电阻知识,从基础知识、实操、应用仿真三方面做系统讲解:基础上明确电阻的核心参数、分类、串并联计算及核心特性;实操中详解贴片/色环电阻的阻值读取、贴片封装换算,重点区分0Ω电阻(贴装跳线,实现功能选通/调试等)与磁珠(高频吸噪)的差异及选型;应用上介绍限流、分压、上拉/下拉、阻抗匹配、过压/过流保护五大典型电路的设计公式、选型原则和实操要点,同时给出电阻通用的选型、测量和布线设计规范,形成完整的电阻应用知识体系。

XU157303764的博客 2772

手把手教你学simulink(44.1)--串励直流电动机场景示例:基于Simulink开发一个串励直流电动机电压控制仿真模型

高启动转矩:由于励磁绕组和电枢绕组串联连接,电机在启动时可以产生较大的转矩。速度随负载变化:由于励磁电流和电枢电流是同一电流,电机的速度会随着负载的变化而显著变化。适用于重载启动:适合用于需要高启动转矩的应用,如起重机、牵引系统等。

MHD0815的博客 338

Arduino_JSON库中嵌套JSON对象的遍历方法解析

Arduino_JSON库中嵌套JSON对象的遍历方法解析 在物联网开发中,JSON数据格式因其轻量级和易读性被广泛使用。Arduino_JSON库为嵌入式设备提供了处理JSON数据的能力。本文将深入探讨如何高效遍历嵌套JSON对象,并分析现有解决方案的优缺点。 嵌套JSON结构分析 典型的嵌套JSON结构如下所示: { "value1": "lala"...

gitblog_07342的博客 642

YOLOV5 自动刷图脚本实战(十五)之如何找到正确的门

DXF是一个2D游戏,我们所看到的人物移动,其实是后面的背景在移动,我们所看到的画面,不过是一个完整背景中的一个镜头视角而已想要正确找到门的坐标,我们需要对不同的地图中的每个房间做一些配置信息。

qq_38892949的博客 2805

Arduino关于JsonArray中不同元素的解析

项目目的 解析 [ 1 , [ {} , {} ,{} ] ]格式的JsonArray 项目代码 //newPayload 的json格式就是 [ 1 , [ {} , {} , {} ] ] //在这里,第一个数组中每个元素格式不一样,这也是一个坑,所以建议一样 DeserializationError error = deserializeJson(doc, newPayload);//解析json if (error) { Serial.print(F("

qq_40960731的博客 951

ONVIF协议简介与协议测试工具使用详解

Onvif协议及协议测试工具使用详解

dvlinker的技术专栏 3万+

Python爬虫实战:利用最新技术爬取抖音话题挑战视频

本文将详细介绍如何使用Python最新技术栈构建一个高效的抖音话题挑战视频爬虫。我们将从环境配置开始,逐步讲解请求模拟、数据解析、反反爬策略、数据存储等关键环节,并提供完整的代码实现。本文适合有一定Python基础的开发者学习高级网络爬虫技术。关键词:Python爬虫、抖音API、话题挑战、视频爬取、反反爬本文详细介绍了如何使用Python最新技术栈构建抖音话题挑战视频爬虫。我们从基础请求开始,逐步实现了数据解析、反反爬策略、数据存储等核心功能,并探讨了分布式和增量爬取等高级主题。更智能的反反爬策略。

2201_76125261的博客 1744

关于json对象的遍历

json格式的数据越来越多的在web开发中起到重要作用。下面介绍对于json对象和数组经常用到解析方法。 varobj={”name”:”冯娟”,”password”:”123456″,”department”:”技术部”,”sex”:”女”,”old”:30}; var arr =[{dd:'SB',AA:'东东',re1:123},{cccc:'dd',lk:'1qw'}]; ...

weixin_30394633的博客 831

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

js遍历json对象

原生js遍历json对象 遍历json对象: 无规律: <script> var json = [   {dd:'SB',AA:'东东',re1:123},   {cccc:'dd',lk:'1qw'} ]; for(var i=0,l=json.length;i<l;i++){   for(var key in json[i]){     alert(key...

james_laughing的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

遍历json对象

原生js遍历json对象 转载自:https://www.cnblogs.com/qingqingzou-143/p/7079725.html 无规律: <script> var json = [   {dd:'SB',AA:'东东',re1:123},   {cccc:'dd',lk:'1qw'} ]; for(var i=0,l=json.length;i<l...

qq_35125495的博客 184

js遍历json对象和jquery $.each()遍历json

无规律: <script> var json = [{dd:'SB',AA:'东东',re1:123},{cccc:'dd',lk:'1qw'}]; for(var i=0,l=json.length;i<l;i++){   for(var key in json[i]){     alert(key+':'+json[i][key]);   } } </script...

qq_34721292的博客 5283

js递归遍历json对象,js循环遍历json数组

Json对象:varsmsTypeDesc={"4":"回访短信","3":"邮件短信","aa":"测试短信"};

wenangou的博客 4765

jQuery 遍历 JSON 对象

/下面使用each进行遍历。

G11176593的博客 973

JS/Jquery遍历JSON对象、JSON数组、JSON数组字符串、JSON对象字符串

JS遍历JSON对象 var jsonObj = { "id": 102, "year": "2019-2020", "label": "2019-2020" }; **JS遍历方法:** for(var p in jsonObj){ alert(jsonObj[p]); } **Jquery遍历方法** $.each(jsonObj,functio...

小超人的知识体系 1万+

JSON、遍历获取json对象的值

一、JSON基本入门 二、定义JSON对象 建一个html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> //1.定义基本格式 var person = {"name": "张三", age: 23, 'gender': true

Alla 2146

json对象遍历

json对象遍历遍历简单对象遍历复杂对象 遍历简单对象 json对象遍历 var jsonObj = {"name": "hello", "age": 20, "sex": "男", "e_mail": "1009143165@qq.com"}; for(var key in jsonObj){ console.log(key) } 遍历复杂对象 var jsonObj = [{"name": "hello", "age": 20, "sex": "男", "e_mail": "1009143165@q

weixin_45124380的博客 462

java中json对象怎么遍历_Java 如何遍历JsonObject对象

方法:Iterator iter = jsonInfo.entrySet().iterator();代码示例:public class Test {public static void main(String[] args) {JSONObject jsonInfo = new JSONObject();String key1 = "a";jsonInfo.put(key1, "aa");Stri...

weixin_42393576的博客 4484

java json对象遍历对象_$.each遍历json对象(java将对象转化为json格式以及将json解析为普通对象)...

var json = [{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"},{"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"},{"id":"5","tagName":"pineapple"}];$.each(json, function(idx, obj)...

weixin_35744067的博客 230

在js中循环遍历json对象

一、遍历普通的json   var data=[{"name":"a","age":12},{"name":"b","age":13},{"name":"c","age":14}]; 方法一: for(var o in data){ alert(o); alert(data[o]); alert("name:"+data[o].name+"

skh2015java的博客 1万+

关于JSON对象的遍历

对于JSON对象结构,可以使用for…in…循环来遍历JSON对象中的数据。 举个栗子: 执行结果: 注意:由于变量a是字符串,因此不能使用obj.a来获取JSON数据,而必须使用obj[a]来获取JSON数据。 各位也都知道JSON对象内部也可以有一个JSON对象,那么对于内部的JSON对象的遍历又该怎么进行呢? 再举个栗子

Zust_jqk的博客 665
上一篇: radio/checkbox/select使用JQurey的常见操作
下一篇: form表单序列化JSON
Carlos Chan
博客等级 码龄14年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值