我有一个像这样的Json数据
{
"info":[
{
"Name":"Noob Here",
"Major":"Language",
"Sex":"Male",
"English":"15",
"Japanese":"5",
"Calculus":"0",
"Geometry":"20"
},
{
"Name":"Noob Here",
"Major":"Calculus",
"Sex":"Female",
"English":"0.5",
"Japanese":"40",
"Calculus":"20",
"Geometry":"05"
}
]
}我只需要获取键值对,其中的值是数值数据。
预期输出
{
"English":"15",
"Japanese":"5",
"Calculus":"0",
"Geometry":"20"
},
{
"English":"0.5",
"Japanese":"40",
"Calculus":"20",
"Geometry":"05"
}有没有什么插件可以做到这一点,或者我是不是应该用正则表达式为它编写冗长的jquery代码?
发布于 2013-03-21 15:04:32
使用jquery isNumeric来确定是否为数字..然后玩对象,array..you需要两个循环来获取对象...
给你..。
var finalObj={}; //this is final output object
var info = []; //array to push to finalObj
$.each(data.info,function(i,v){
var object={};
$.each(v,function(i1,val1){
if($.isNumeric(val1)){
object[i1]=val1
}
});
info.push(object);
});
finalObj['info']=info;
console.log(finalObj);fiddle here
发布于 2013-03-21 14:43:52
您可以使用parseInt解析值,如果它是整数,则选择它。
test等于要发布的json对象。
var obj = test.info[0];
for (var key in obj) {
if(!isNaN(parseInt(obj[key]))){
alert(JSON.stringify(key));
}
}http://jsfiddle.net/btevfik/gQfAN/
发布于 2013-03-21 14:57:11
你可以写一个助手函数。只需传入Json对象并遍历每个字段即可。正则表达式是直接的。
var regex = new RegExp("\d*\.?\d");
var result = regex.test("yourvalue");如果result为true,则它是一个数字。编译结果并返回一个Json对象。
https://stackoverflow.com/questions/15540904
复制相似问题