文档章节

json嵌套遍历实例

高处胜寒
 高处胜寒
发布于 2017/09/11 15:43
字数 784
阅读 5
收藏 0
点赞 0
评论 0
<?php


/**
 * @param $arr
 */

function p($arr)
{

    echo "<pre>";

    print_r($arr);

    echo "</pre>";
}


?>


<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>小雨在线-开发测试</title>


    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

    <!--[if lt IE 9]>
    <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<body>


<div class="container-fluid" id="box">
    <!--
      <div class="chapter">
          <h3>第1章 面向对象基础</h3>
          <ul>
              <li data-media-id=""><a href="#" class="J-media-item"><i class="icon-video type"></i>面向对象介绍</a></li>
          </ul>
      </div>
    -->
</div>


<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>


<script>

    $(function () {
        ajaxreq();


        $(document).on("click",".J-media-item",function () {
            console.log($(this).parent().data("mediaId"));

        });


    });




    function ajaxreq() {
        $.ajax({

            //提交数据的类型 POST GET
            type: "POST",

            //提交的网址
            //url: "./test_ajax.php",
           // url: "./liti_list.json",
            url: "./t.json",

            //提交的数据
            data: {ajaxdo: "act"},

            //返回数据的格式
            datatype: "json",//"xml", "html", "script", "json", "jsonp", "text".

            //在请求之前调用的函数
            beforeSend: function (XMLHttpRequest) {
                //todo
            },

            //成功返回之后调用的函数
            success: function (data) {

                var json_data = data;

                console.log(json_data);

                $.each(json_data,function (key,val) {

                    var jsonarr = val;
                    console.log(jsonarr);

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

                       var jsonobj = jsonarr[i];
                       console.log(jsonobj);
                       for (var x in jsonobj) {
                           //console.log(x);
                           console.log(jsonobj[x]);
                       }

                   }
                    
                });
                
                
                
                
                


               // console.log(data);

                var temp = "";


/*
                $.each(json_data.data, function (key, val) {

                    temp += "<div class=\"chapter\">";
                    temp += "<h3>" + val.name + "</h3>";
                    temp += "<ul>";
                    $.each(val.exams, function (k, v) {
                       // console.log(v.id + v.text);
                        temp += "<li data-media-id=\""+v.id+"\"><a href=\"#\" class=\"J-media-item\"><i class=\"icon-video type\"></i>"+v.id + v.text+"</a></li>";
                    });

                    temp += "</ul>";
                    temp += "</div>";
                    //console.log(val.name);

                });

                */

                $("#box").append(temp);


                //todo
            },

            //调用执行后调用的函数
            complete: function (XMLHttpRequest, textStatus) {
                //todo
            },

            //调用出错执行的函数
            error: function () {
                //todo
            }
        });

    }


</script>


</body>
</html>

 

{
  "programmers": [
    {
      "firstName": "Brett",
      "lastName": "McLaughlin",
      "email": "aaaa"
    },
    {
      "firstName": "Jason",
      "lastName": "Hunter",
      "email": "bbbb"
    },
    {
      "firstName": "Elliotte",
      "lastName": "Harold",
      "email": "cccc"
    }
  ],
  "authors": [
    {
      "firstName": "Isaac",
      "lastName": "Asimov",
      "genre": "science fiction"
    },
    {
      "firstName": "Tad",
      "lastName": "Williams",
      "genre": "fantasy"
    },
    {
      "firstName": "Frank",
      "lastName": "Peretti",
      "genre": "christian fiction"
    }
  ],
  "musicians": [
    {
      "firstName": "Eric",
      "lastName": "Clapton",
      "instrument": "guitar"
    },
    {
      "firstName": "Sergei",
      "lastName": "Rachmaninoff",
      "instrument": "piano"
    }
  ]
}

 

{
  "code": 0,
  "message": "成功",
  "totalCount": 0,
  "type": 0,
  "data": [
    {
      "name": "AAAA",
      "exams": [
        {
          "id": 175,
          "text": "AAA测试1",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        },
        {
          "id": 176,
          "text": "AAA测试2",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        },
        {
          "id": 177,
          "text": "AAA测试3",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        }
      ]
    },
    {
      "name": "BBBB",
      "exams": [
        {
          "id": 178,
          "text": "BBBB测试1",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        },
        {
          "id": 179,
          "text": "BBBB测试2",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        },
        {
          "id": 180,
          "text": "BBBB测试3",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        },
        {
          "id": 181,
          "text": "BBBB测试4",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        }
      ]
    },
    {
      "name": "CCCC",
      "exams": [
        {
          "id": 182,
          "text": "CCCC测试1",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        },
        {
          "id": 183,
          "text": "CCCC测试2",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        },
        {
          "id": 184,
          "text": "CCCC测试3",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        }
      ]
    },
    {
      "name": "DDDD",
      "exams": [
        {
          "id": 185,
          "text": "DDDD测试1",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        },
        {
          "id": 186,
          "text": "DDDD测试2",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        }
      ]
    },
    {
      "name": "EEEE",
      "exams": [
        {
          "id": 179,
          "text": "EEEE测试1",
          "playUrl": null,
          "summary": null,
          "speak": null,
          "analysis": null,
          "star": 6,
          "vip": 0,
          "exp": 0,
          "coin": 0
        }
      ]
    }
  ]
}

 

参考资料:

http://www.cnblogs.com/firstcsharp/p/4208956.html

https://www.zhihu.com/question/25147806

http://blog.csdn.net/a525390802/article/details/76293325?locationNum=10&fps=1

© 著作权归作者所有

共有 人打赏支持
高处胜寒
粉丝 6
博文 153
码字总数 92417
作品 0
西安
程序员
手把手教你实现json嵌套对象的范式化和反范式化

原文在我的博客中:原文地址 在json对象嵌套比较复杂的情况下,可以将复杂的嵌套对象转化成范式化的数据。比如后端返回的json对象比较复杂,前端需要从复杂的json对象中提取数据然后呈现在页...

yuxiaoliang
07/03
0
0
mysqludf_json将关系数据以JSON编码

前言 sphinx2.1版本引入了json属性,该如何构建json格式数据呢?mysql触发器与gearman结合应用时,只能向gearman worker传递单一的字符串参数,如果要将mysql表中的某些列的数据传递给worke...

NorthBoy
2013/08/29
0
0
java中如何采用迭代法遍历所有的继承类的类名

假设有A,B,C,D,E,F四个类,其继承关系如下: D,E继承了B,F继承了C,B,C继承了A,假设我采用映射获取到上述所有的类,并存入一个list中,现在我想在这些类中把他们之间的继承关系以及每个类中...

码上中国博客
2015/08/18
399
0
spark scala解析和生成json有什么好的方法

spark scala解析和生成json有什么好的方法 需要能解析出json中的每一个key及值,json结构比较复杂,最好可以像python和php那样生成可以遍历的结构, 同时可以将嵌套的结构转化成json...

刘德生
2017/04/22
1K
2
如何使用jquery处理json数据

如摘要所说,json是常用的前后端交互的数据格式,本文简单介绍jquery如何解析json数据,以备忘。 如下是一个嵌套的json: [{"name":"20:00-21:15","price":"1.00"},{"name":"17:30-17:59","...

fzxu_05
2014/03/04
0
0
用 JSON 表现树的结构兼谈队列、堆栈的练习(一)

K/V 与 Array 接触 JSON 的人都知道,JSON 可通过 K/V(Key/Value) 结构很直观地表现一棵树,因为 V 可以“包含”另外一个 K/V 从而不断嵌套下去形成“树状”的结构。但 V 不一定必须为另外...

zhangxin09
2017/08/02
0
0
MongoDB 多层次 嵌套 提供特定查询 @红薯

项目模型是一个多层次 数组的嵌套JSON结构 保存在mongoDB中 用的API是spring-data-mongo 现在问题是能不能通过层次的赛选取出里边或者JSON底层的一个特定对象 而不是取出整个JSON 如果有修改...

不知所措ii
2015/01/12
1K
3
是我狼/RapidDB

RapidDB 轻量级数据库操作组件 支持事务嵌套 PDO支持 JSON支持 类的实例集合支持 轻量级 可以轻易和其他框架整合 多数据库多连接支持 ##使用方式 ###通过composer安装 $ composer require s...

是我狼
2015/12/31
0
0
json字符串中key值驼峰命名与下划线命名互转

最近正在开发一个工具类,目的是把一整个json字符串中的所有key值做驼峰和下划线之间的转换。 目前想到两种方案 1.把所有的key值用正则提取替换。感觉这种方式过于简单粗暴 2.把json字符串解...

CloudArchitect
2016/10/26
2.4K
11
在java中指定字段生成json

在restful风格的架构中,服务端与客户的通信通常采用json的数据格式;然而当今越来越分工明确的前端与后端开发者在确定通信内容时往往难以确定一个具体的信息需求,尤其当服务端是基于javab...

Futu4
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
1
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
0
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
0
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
2
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
0
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
0
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部