项目中经常用到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. 简单介绍一下ODI的几个基本概念

    简单介绍一下ODI的几个基本概念   ODI的几个基本概念是本文我们主要要介绍的内容,接下来我们就开始介绍这一过程,一起来看看吧! 什么是资料库 ODI资料库可安装在任何支持ANSIISO89的数据库 ...

  2. PADS LAYOUT到底怎么走线

    PADS LAYOUT走线,是不是转角要自己手动慢慢转角啊?不能像PROTEL中那样自动转角吗 自己手动转角老是转不好,出现许多线头,对不齐,是不是我操作有误啊 走线的过程中,可以试试这个,切换端点. ...

  3. PCB流程-外型加工

  4. 怎样注册uber司机 如何注册uber司机 最新详细攻略

    怎样注册uber司机 如何注册加入uber司机 全国加入Uber 的要求 车辆要求:要求裸车价8万以上,车龄5年以内,第三者责任险保额30万以上,不支持20万以下的面包车/商务车,不支持4座以下车辆. ...

  5. Duanxx的图像处理学习: 透视变换(一)

    当人用眼睛看事物的时候,会感觉到近处的东西是比远处的东西要大一些的,通俗的说,这就是透视. 总的来说.透视变换是将3D的世界转换到2D图像上的一种手段,人的视觉系统和摄像头视觉系统也是基于这一工作原理 ...

  6. 项目管理:关于SVN的实践

    SVN是Subversion的简称,是一个开放源码的版本号控制系统. 合作开发的时候,对SVN的使用有3个软件:SVN的server端,SVNclient(也就是Tortoise SVN,寻常chec ...

  7. 关于js封装框架类库之样式操作

    在js中,对样式的操作我们并不感到陌生,在很多框架中都是用极少的代码,实现更强大的功能,在这做出一些的总结.存在不足还望指出! 1.封装一个添加css的方法(这篇引用了前面的框架结构) 在 js 中 ...

  8. ZOJ 3080 ChiBi(spfa)

    ZOJ Problem Set - 3080 ChiBi Time Limit: 5 Seconds      Memory Limit: 32768 KB watashi's mm is so pr ...

  9. servlet操作数据库

    工具:myeclipse 数据库工具:mysql java ee操作数据库,首先要导入数据库驱动文件,我用的是mysql 刚开始,很多人代码正确但是就是连接不上,原因就是忘了驱动文件的导入. 我的驱动 ...

  10. Android 学习开发笔记《Service 与 Thread 的区别 》

    很多时候,你可能会问,为什么要用 Service,而不用 Thread 呢,因为用 Thread 是很方便的,比起 Service 也方便多了,下面我详细的来解释一下. 1). Thread:Thre ...