项目中经常用到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字符串做一些常见的操作,这是下载链接myJsonUtil.js

json对象的操作,json工具的更多相关文章

  1. JSON对象与XML相互转换工具类

    依赖jar <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId ...

  2. JSON基础 JS操作JSON总结

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  3. JSON对象转换成JSON字符串

    1.问题背景 有一个json对象,需要将其转换成json字符串 JSON.stringify(obj) 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DT ...

  4. Javascript中JSON对象的操作以及遍历key/value

    //遍历获取值: function text(){ var json = {"options":"[{/"text/":/"王家湾/&quo ...

  5. js中 json对象的转化 JSON.parse()

    JSON.parse() 方法用来解析JSON字符串,json.parse()将字符串转成json对象.构造由字符串描述的JavaScript值或对象.提供可选的reviver函数用以在返回之前对所得 ...

  6. JSON和GSON操作json数据

    1,JSON操作json import net.sf.json.JSONArray; import net.sf.json.JSONObject; //json操作数据 public static S ...

  7. 双层嵌套json字符串(即json对象内嵌json数组)解析为Map

    之前我层写过一篇文章,介绍了json与map的相互转化,但当时只涉及到单一的json对象或json数组,对json对象内嵌套这json数组的json字符串无法处理,这篇文章主要解决这个问题. 之前的那 ...

  8. json字符串和Json对象,以及json的基本了解

    考虑到python等语言中没有更好表示json对象的方法,所以使用JavaScript来介绍json 首先是json字符串: var str1 = '{ "name": " ...

  9. 【前端学习笔记】JavaScript JSON对象相关操作

    //JSON方法 //JSON.parse(); var json = '{"name":"zj","age":23}'; JSON.par ...

随机推荐

  1. stl 迭代子的失效

    迭代子是STL中很重要的特性,但是其很脆弱(我个人认为),因为使用它的条件很苛刻,一不小心就失效了.其在两中情况下可能会失效. 1.当容器有插入操作时 在初始化了迭代子后,如果容器有插入操作时,迭代子 ...

  2. JavaEE Tutorials (14) - 用实体图创建获取计划

    14.1实体图基础185 14.1.1默认实体图186 14.1.2在持久化操作中使用实体图18614.2使用命名实体图187 14.2.1对实体类应用命名实体图注解187 14.2.2从命名实体图获 ...

  3. 利用BP神经网络预测水道浅滩演变

    论文 <基于现代技术的河道浅滩演变研究> 利用BP神经网络来预测浅滩演变 BP输出因子:浅滩的年平均淤积厚度以及浅滩上最小水深,是反映浅滩变化的两个基本指标,是确定浅滩航道尺度能否满足航行 ...

  4. ubuntu 常用生产环境部署配置测试调优

    1,ubuntu monogdb 安装配置 2,ubuntu jdk1.7,tomcat7安装 3,ubuntu LAMP部署 4,mongodb 远程热备份及恢复 使用自带的mongodump和mo ...

  5. CATransition类动画

    - (void)leftClick { [UIView beginAnimations:nil context:nil]; //display mode, slow at beginning and  ...

  6. Boost源代码学习---shared_ptr.hpp

    最近观看Boost库源代码.Boost功能强大的库,但它的许多源代码,十一细读太费时间,毕竟,还有其他东西要学.所以我决定脱脂感兴趣的章节,他们的设计思路和难以理解的地方记录. shared_ptr是 ...

  7. 一个页面从输入URL到页面加载显示完成的详细过程

    下面以访问baidu页面来做一个过程分析 输入 URL:http://www.baidu.com DNS 域名解析 计算机无法识别域名,计算机与计算机之间要想进行通信,必须通过ip地址用来定位该计算机 ...

  8. 根据checkBox或radio的勾选状态得到id数组

    $(function(){ var inputs = document.getElementsByTagName("input"); var realStrs = "&q ...

  9. 理解Ajax

    1.优化原则 优化的目的是希望降低程序的整体开销.虽然在程序中有许多因素可以优化,但是通常人们会认为这个开销就是程序的执行时间.其实我们更应该把重点放在对程序整体开销最大的那部分.   2.一切都是权 ...

  10. Zencart先生成订单后付款,类似淘宝后台修改订单价格

    Zencart 使用 Paypal 付款,会出现漏单的情况,即 paypal 已经收到客户的付款,但是网站后台没有客户的订单.导致 paypal 漏单的原因大致会是当客户跳转到Paypal 网站付款完 ...