使用递归对任意json解析
2015-11-19 17:53
585 查看
(function(angular){
var app = angular.module('app', []);
app.controller('MainCtrl', [
'$scope', '$http', function($scope, $http) {
var url ="http://localhost:8080/test/getData";
$http.get(url)
.success(function (datas) {
var space="|";
var Objs = eval(datas);
myparseJson(Objs,space);
});
function myparseJson(datas,space){
if(isJson(datas)){
for(key in datas){
var value = datas[key];
console.info(space + key+":");
var tempspace = space+" |";
myparseJson(value,tempspace);
}
}else if(isArray(datas)){
for(index in datas){
var value = datas[index];
var tempspace = space + " |";
myparseJson(value,tempspace);
}
}else if(isNull(datas)){
console.info(space + 'nulltt');
return '';
}else if(datas == undefined){
console.info(space + 'undefinedtt');
return '';
}else{
console.info(space + datas);
return datas;
}
}
function isJson(obj){
var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
return isjson;
}
function isArray(obj){
var isarray = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object array]" && obj.length;
return isarray;
}
function isNull(obj){
var isnull = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object null]";
return isnull;
}
}]);
})(window.angular);
var app = angular.module('app', []);
app.controller('MainCtrl', [
'$scope', '$http', function($scope, $http) {
var url ="http://localhost:8080/test/getData";
$http.get(url)
.success(function (datas) {
var space="|";
var Objs = eval(datas);
myparseJson(Objs,space);
});
function myparseJson(datas,space){
if(isJson(datas)){
for(key in datas){
var value = datas[key];
console.info(space + key+":");
var tempspace = space+" |";
myparseJson(value,tempspace);
}
}else if(isArray(datas)){
for(index in datas){
var value = datas[index];
var tempspace = space + " |";
myparseJson(value,tempspace);
}
}else if(isNull(datas)){
console.info(space + 'nulltt');
return '';
}else if(datas == undefined){
console.info(space + 'undefinedtt');
return '';
}else{
console.info(space + datas);
return datas;
}
}
function isJson(obj){
var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
return isjson;
}
function isArray(obj){
var isarray = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object array]" && obj.length;
return isarray;
}
function isNull(obj){
var isnull = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object null]";
return isnull;
}
}]);
})(window.angular);
相关文章推荐
- JavaScript prototype 使用介绍
- 《JavaScript设计模式》读书笔记模板方法模式
- 《JavaScript设计模式》读书笔记:单例模式
- jsp 基础语法
- JSF notes
- 如何配置Filter过滤器处理JSP中文乱码<参考>
- 解决 Eclipse build workspace 慢,validation javascript 更慢的问题
- JavaScript 贪吃蛇实现
- javascript中in运算符详解
- js数据的处理字符型和整型--有道笔记整理
- javascript中有关this的使用
- js--Array遍历--有道笔记整理
- 11-19
- mybaits获取的结果集不能成功转JSON格式的问题
- javaScript数组操作--有道笔记整理
- JavaScript学习----初步
- JS 判断中英文字符长度
- JS URL Parse
- js控制台输出
- javascript 切换上下文,事件绑定中改变this指向