JS从json对象字符串中取出相应值的方法
一. 取出json对象字符串中的某个属性值有时候,处理json时, 将一个对象JavaBean 转换成 json 字符串时,前端接收, 常常会接收成这个形式,是字符串形式。
User [Hash = 2145890770, id=1, code=admin, name=管理员, password=AiTsc3dGCn7L6+GJmB7IuQ==, salt=admin, serialVersionUID=1]
那么此时,如何取出某一个属性的值呢? 如 id 的值。
需要将这个字符串,转换成数组, 每一个属性值是 Hash = 2145890770,id=1, code=admin …serialVersionUID=1 这样的形式,
然后再将这个数组中的每一个值 进行按照 = 号进行拆分, 前面的值是 key,后面的值是 value
如 id=1 那一组, 就变成了 id ,1.
遍历每一个key, 取出对应的 value.
二. 转换方法 getJsonObjectKey
function getJsonObjectKey(jsonObj,beanPrefix,key){
//先截取
jsonObj=jsonObj.substring(beanPrefix.length+1);
//去除掉左右 [ ]
jsonObj=jsonObj.substring(1,jsonObj.length-1);
//以, 进行区分
var arrObj=jsonObj.split(",");
for(var i=0;i<arrObj.length;i++){
//获取值
var v=arrObj[i];
//当前的索引
var index=v.indexOf("=");
//前面的部分
var Objkey=v.substring(0,index).trim();
//后面的部分
var Objvalue=v.substring(index+1).trim();
if(key==Objkey){
return Objvalue;
break;
}
}
return "";
}
三. 测试
function getJsonObjectKey(jsonObj,beanPrefix,key){
//先截取
jsonObj=jsonObj.substring(beanPrefix.length+1);
//去除掉左右 [ ]
jsonObj=jsonObj.substring(1,jsonObj.length-1);
//以, 进行区分
var arrObj=jsonObj.split(",");
for(var i=0;i<arrObj.length;i++){
//获取值
var v=arrObj[i];
//当前的索引
var index=v.indexOf("=");
//前面的部分
var Objkey=v.substring(0,index).trim();
//后面的部分
var Objvalue=v.substring(index+1).trim();
if(key==Objkey){
return Objvalue;
break;
}
}
return "";
}
//json 字符串
var userBean="User [Hash = 2145890770, id=1, code=admin, name=管理员, password=AiTsc3dGCn7L6+GJmB7IuQ==,
salt=admin, serialVersionUID=1]";
console.log("传入bean:"+userBean);
//取出 id值
var id= getJsonObjectKey(userBean,"User","id");
console.log("取出属性值id:"+id);
//取出 code 值
var code= getJsonObjectKey(userBean,"User","code");
console.log("取出属性值code:"+code);