首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从json中仅获取数字键值对

如何从json中仅获取数字键值对
EN

Stack Overflow用户
提问于 2013-03-21 14:31:49
回答 5查看 2.3K关注 0票数 2

我有一个像这样的Json数据

代码语言:javascript
复制
{
   "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"
      }
   ]
}

我只需要获取键值对,其中的值是数值数据。

预期输出

代码语言:javascript
复制
{
"English":"15",
"Japanese":"5",
"Calculus":"0",
 "Geometry":"20"
},
{
 "English":"0.5",
"Japanese":"40",
"Calculus":"20",
"Geometry":"05"
}

有没有什么插件可以做到这一点,或者我是不是应该用正则表达式为它编写冗长的jquery代码?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-21 15:04:32

使用jquery isNumeric来确定是否为数字..然后玩对象,array..you需要两个循环来获取对象...

给你..。

代码语言:javascript
复制
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

票数 3
EN

Stack Overflow用户

发布于 2013-03-21 14:43:52

您可以使用parseInt解析值,如果它是整数,则选择它。

test等于要发布的json对象。

代码语言:javascript
复制
var obj = test.info[0];
for (var key in obj) {
if(!isNaN(parseInt(obj[key]))){
    alert(JSON.stringify(key));
         }
}

http://jsfiddle.net/btevfik/gQfAN/

票数 2
EN

Stack Overflow用户

发布于 2013-03-21 14:57:11

你可以写一个助手函数。只需传入Json对象并遍历每个字段即可。正则表达式是直接的。

代码语言:javascript
复制
var regex = new RegExp("\d*\.?\d"); 
var result = regex.test("yourvalue");

如果result为true,则它是一个数字。编译结果并返回一个Json对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15540904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档