`

Loop Json Array

    博客分类:
  • JSON
阅读更多
list]
如何将Json里的数组一次全部遍历出来, 现在是一个小小的例子,请参考
如果想精通JSon 到官方
http://www.json.org

[/list]
 function loopJson() {
        var results = {"d":[{"__type":"FluentWeb.DTO.EmployeeOrder",
                        "EmployeeName":"Janet Leverling",
                        "EmployeeTitle":"Sales Representative",
                        "RequiredDate":"\/Date(839224800000)\/",
                        "OrderedProducts":null}]}
       var result = [  {"id":1,"name":"zhangsan",
                           "address":{"homeAddress":"beijing",
                           "companyAddress":"shanghai"},
                           "friends":[{"id":5,"name":"zhangsan\u0027s friend1"},
                           {"id":6,"name":"zhangsan\u0027s friend2"}]
                       },
                       {"id":2,"name":"lisi","address":{"homeAddress":"liaoning","companyAddress":"fujian"},
                           "friends":[{"id":10,"name":"lisi\u0027s friend1"},
                           {"id":11,"name":"lisi\u0027s friend2"}]
                       }
                     ];
       for (var i = 0; i < result.length; i++) {
            for (var prop in result[i]) {
                   if(typeof result[i][prop] == 'object') {
                       loopJSONData(result[i][prop]);
                   }else {
                        alert(result[i][prop]);
                   }
            }
        }
                      
                   
    }
   
    function loopJSONData(result) {
         for(var prop in result) {
               if(typeof result[prop] == 'object') {
                   loopJSONData(result[prop]);
               }else {
                   alert(result[prop]);
               }
         }
    }


 <body id="theBody">
   
   <input type="button" value="loopJson " onclick="loopJson()">
  
  </body>


    [***********************************************************]


    [下面是一段通用的JS 代码]

/**
 * The method resolving json result data.
 * Only get requests call it.
 * Invoke this method require comply json reference:
 * [{key: value} , {key : value, object : [{key : value.......}]}, {key : value}........]
 */
function getRequestJson(url, header, elementId) {
 	$.getJSON(url,function(results, status){
		if("success" == status){
			  loopJSONData(results, header, elementId);   
		}
	});
}

/**
 * The method resolving json result data.
 * Only post requests call it.
 * Invoke this method require comply json reference:
 * [{key: value} , {key : value, object : [{key : value.......}]}, {key : value}........]
 */
function postRequestJson(url, header, elementId) {
	$.post(url,{}, function(returnedData, status) {
		if("success" == status) {
			loopJSONData(results, header, elementId); 
		}
	});
}

function loopJSONData(results, header, elementId) {
  	var html = "<table width='100%' border = '1' align='left' id='jsonTable'>";
  	html += createHeader(header);
  	var k = 0;
  	var n = 0;
  	for (var i = 0; i < results.length; i++) {
  		 html += "<tr>";
  		 for (var prop in results[i]) {
	   		if(typeof results[i][prop] == 'object') {
	   			if(results[i][prop].constructor == Array && typeof results[i][prop] == 'object') {
	   				html += loopJsonChildArray(results[i][prop]);
	   			}else {
	   				html += loopJSONChildObject(results[i][prop])
	   			}
	   		}else {
	   		 	html += "<td>"+results[i][prop]+"</td>";
	   		}
       }
       html += "</tr>";
    }
  	html += "</table>";
	$("#"+elementId+"").append(html);
}

function loopJSONChildObject(results) {
	var html = "";
	for(var prop in results) {
	   	if(typeof results[prop] == 'object') {
	  		html += loopJSONChildObject(results[prop]);
	   	}else {
	   		html += "<td>"+results[prop]+"</td>";
	   	}
	}
 	return html;
}

function loopJsonChildArray(results) {
	var html = "";
	for(var i = 0; i < results.length; i++ ) {
		html += "<tr>";
		for(var prop in results[i]) {
		   	if(typeof results[i][prop] == 'object') {
		   		if(results[i][prop].constructor == Array) {
		   			html += loopJSONChildObject(results[i][prop]);
		   		}else {
		   			html += loopJSONChildObject(results[i][prop]);
		   		}
		   	}else {
		   	 	html += "<td>"+results[i][prop]+"</td>";
		   	}
		}
		html += "</tr>";
	}
	return html;
}


分享到:
评论

相关推荐

    arduino aJson

    例如,你可以使用`JsonObject& createObject()`创建一个新的JSON对象,使用`JsonArray& createArray()`创建一个JSON数组,以及`void add(const char* key, const T& value)`来添加键值对。对于数组,你可以使用`void...

    Flex数据转换包

    最小、最快的Flex转换JSON的工具包 private function init():void { var simpleJSON:String = "{\"name\":\"wayne\",\"value\":1000.0}"; var jObj:Object = JParser.decode(simpleJSON); } ====...

    循环代替递归

    json_traversal_loop(json_obj) ``` 在这两种方法中,循环版本可能更易于理解和控制,特别是在处理大型嵌套数据结构时,避免了深度递归可能引发的栈溢出问题。 总之,循环和递归各有优缺点,根据具体场景选择合适...

    qt调用get post接口

    QByteArray array = document.toJson(QJsonDocument::Compact); // 发送请求 QNetworkAccessManager manager; QNetworkReply *reply = manager.post(request, array); // 处理响应 QEventLoop eventLoop; QObject:...

    常用小技巧

    - **变量与数据类型**:JavaScript是动态类型语言,支持var、let和const声明变量,以及基本数据类型(如String、Number、Boolean、Null、Undefined)和复杂数据类型(如Object、Array)。 - **作用域与闭包**:...

    JS_Fetch_Vanilla

    var是全局范围的,您可以使用let Array.isArray(array)array.indexOf('number')重新分配值 对象文字是键==值对对象数组,例如 const todos = [{{id:1,text:'我的名字是texr',isComplete:false},{id:1,...

    10个有用的PHP代码

    $json_data = array('id' =&gt; 1, 'name' =&gt; "John", 'country' =&gt; 'Canada', "work" =&gt; array("Google", "Oracle")); echo json_encode($json_data); $json_string = '{"id":1,"name":"John","country":"Canada",...

    ASP中Text的联想输入功能

    suggestions = Array() Do Until rs.EOF suggestions.push(rs("Term")) rs.MoveNext Loop rs.Close conn.Close response.Write JSON.stringify(suggestions) %&gt; ``` 这段代码连接到数据库,执行SQL查询...

    Javascript5.5语言参考.rar

    10. **ES5.1和5.2的新特性**:例如`Array.prototype.forEach()`, `Array.prototype.map()`, `Function.prototype.bind()`, `Object.keys()`, `JSON.parse()`和`JSON.stringify()`等。 11. **API帮助**:由于标签中...

    Eloquent javascript

    7. 高阶函数(Higher-Order Functions):介绍抽象化(Abstraction)、抽象化数组遍历(Abstracting array traversal)、传递参数(Passing along arguments)、JSON的使用、数组过滤(Filtering an array)、映射...

    Beginning PHP 5.3

    - **Loop Constructs:** Explanation of loop constructs like `for`, `while`, `do-while`, and `foreach` for iterating over blocks of code. - **Nested Control Structures:** Discussion on nesting control ...

    Packt.PostgreSQL.Developer's.Guide.2015

    - **复杂数据类型**: 如 `ARRAY`, `JSON`, `HSTORE` 等。 **1.5 PostgreSQL 的运算符及其使用** - **逻辑运算符**: 包括 `AND`, `OR`, `NOT`。 - **比较运算符**: 包括 `=`, `, `&gt;`, `, `&gt;=`, `&lt;&gt;`。 - **数学...

    CrazyAlpha-master_CrazyAlpha_

    2. **游戏循环(Game Loop)**:游戏的核心在于游戏循环,这是处理用户输入、更新游戏状态和渲染画面的关键部分。在CrazyAlpha的源码中,我们可以找到这个循环的实现,学习如何有效地同步游戏时间和处理帧率。 3. *...

    api-articles

    Fetch API使用Promise处理异步操作,提供了更加简洁和灵活的接口,如`fetch(url).then(response =&gt; response.json())`,这使得获取和解析JSON数据变得更加容易。 此外,还有Event Loop和Async/Await等高级概念,...

    Programming Ruby 1.9 (3rd edition)和源码

    - 数组(Array):线性数据结构,支持索引访问和各种操作,如插入、删除、合并等。 - 哈希(Hash):键值对存储,提供了快速查找功能,键可以是任何对象。 - 符号(Symbol):不可变的哈希键,用于节省内存。 - ...

    前端大厂最新面试题-2019快看漫画前端社招面经.docx

    为了处理异步操作,JavaScript 引入了事件循环(Event Loop)机制。事件循环包括以下几个关键部分: 1. **调用栈(Call Stack)**:存放函数调用,按照先进后出(LIFO)原则执行。 2. **任务队列(Task Queue)**:...

    JS入门教程 javascript教程

    在学习JavaScript时,你还需要了解浏览器环境下的运行机制,如Event Loop和Callback Queue,以及Node.js环境下JavaScript的运行方式。此外,学习常见的JavaScript库和框架,如jQuery、React、Vue或Angular,将有助于...

    开发桌面应用框架AtomShell.zip

    atom-shell 通过集成 libuv loop 和 平台的 message loop 避免给 Chromium 打补丁。 4. Multi-context Node-Webkit 创造了 Node context 和 web context 的概念,而 atom-shell 没有引入新的 context,而是...

    【JavaScript源代码】如何在vue中使用kindeditor富文本编辑器.docx

    此命令会将KindEditor添加到项目的`node_modules`目录下,并自动将其版本记录在`package.json`文件中。 #### 三、创建组件 接下来,我们需要创建一个名为`kindeditor.vue`的Vue组件来封装KindEditor的功能。以下是...

Global site tag (gtag.js) - Google Analytics