您的位置:首页 - 教程 - JavaScript - 正文
json对象的常用操作函数
json对象的操作,json工具

项目中经常用到json,现在把写了几个js函数,用来获取json对象或者json字符串的长度,以及获取其的key值,value值,并且返回。

这样以后可以直接拿来用,可以省去不少麻烦,也方便以后查看。

/**
* 检验传入的对象是否为json对象或者json字符串, 符合条件则返回json对象,否则返回false
* 不能够传入字符串"weiyl","abcd"非json字符串,否则会报错。
* @param json
* @returns
*/
function toJson(json) {
var type = typeof json;
/**
* 防止传入的字符串是null,undefined或者''空字符串,所以判断的时候
* 用type=="string"与上json本身
*/
if (type == "string" && json) {
return JSON.parse(json);
} else if (type == "object") {
return json;
} else {
alert('你传入的参数' + json + ',不是json对象或者json格式的字符串');
return false;
}
}
/**
* 使用typeof操作符 对一个值使用typeof操作符可能返回下列某个字符串:
*
* 1):undefined——如果这个值未定义
*
* 2):boolean——如果这个值是布尔值
*
* 3):string——如果这个值是字符串
*
* 4):number——如果这个值是数值
*
* 5):object——如果这个值是对象或null
*
* 6):function——如果这个值是函数 传入一个json对象,或者json格式
* 的字符串,返回这个json对象的长度, 否则,返回 -1
*
* @param jsonObj
* @returns {Number}
*/
function getJsonLen(jsonObj) {
jsonObj = toJson(jsonObj);
var type = typeof jsonObj;
if (type == "boolean" || type == undefined || type == "number"
|| type == "function") {
return -1;
}
var len = 0;
for ( var item in jsonObj) {
len++;
}
return len;
}

/**
* /** 传入一个json字符串或者json对象, 获取所有key值,并且
* 以数组形式返回, 如果传入的不是json字符串或者json对象, 就返回-1
*
* @param JsonObj
* @returns {Array}
*/
function getJsonKey(JsonObj) {
var len = getJsonLen(JsonObj);
if (len == -1) {
return -1;
}
var array = [];
/*
* 因为在getJsonLen()方法中对传入的对象做了 判断,所以这里
* 就不用再判断是否为json或者json字符串了
*/
for ( var item in JsonObj) {
array.push(item);
}
return array;
}
/**
* 传入一个json字符串或者json对象, 获取所有value值,并且以
* 数组形式返回, 如果传入的不是json字符串或者json对象, 就返回-1
*
* @param JsonObj
* @returns {Array}
*/
function getJsonValue(JsonObj) {
var len = getJsonLen(JsonObj);
if (len == -1) {
return -1;
}
var array = [];
/*
* 因为在getJsonLen()方法中对传入的对象做了 判断,所以
* 这里就不用再判断是否为json或者json字符串了
*/
for ( var item in JsonObj) {
array.push(JsonObj[item]);
}
return array;
}

以上几个方法可以用来对json对象或者json字符串做一些常见的操作

评论: