如何从JSON起始值获得值?

时间:2014-05-22 15:11:11

标签: javascript jquery json jsonpath

我有一个喜欢

的json
[
{
    "text": "Acute Myelocytic Leukemia"
},
{
    "text": "Acute Myeloid Leukemia, Adult"
},

{
    "text": "Dengue Fever"
},
{
    "text": "Diphtheria"
},
{
    "text": "Familial Cold Autoinflammatory Syndrome"
},
{
    "text": "Familial Mediterranean Fever"
},

]

现在我想仅以“' a'或者' b' .....' z'。

结果如(急性髓细胞白血病,急性髓细胞白血病,成人)

如何在javascript或jquery中获得此结果。

请帮帮我。提前谢谢。

6 个答案:

答案 0 :(得分:1)

在普通的Javascript中?尝试这样的事情:

function iterate() {
    var data = [
        {"text": "Acute Myelocytic Leukemia"},
        {"text": "Acute Myeloid Leukemia, Adult"},
        {"text": "Dengue Fever"},
        {"text": "Diphtheria" }, 
        {"text": "Familial Cold Autoinflammatory Syndrome" },
        {"text": "Familial Mediterranean Fever" }
    ];

    for (var i = data.length - 1; i >= 0; i--) {
        if (data[i].text.indexOf('A') == 0) {
            // do whatever;
        }
    };
}

编辑:看看其他答案 - 如果你的网站中嵌入了jquery,那么更好的选择就是收听它们并使用$ .grep。当其他答案比我的更好时,我总是感觉很糟糕,但是嘿 - 重要的是我们都学习并变得更好,对吧? ;)

答案 1 :(得分:0)

您可以使用$.grep()

var matches = $.grep(data, function(item, idx) {
    return item.text.toLowerCase().indexOf('a') == 0;
});

答案 2 :(得分:0)

如果Jquery是一个选项Jsfiddle

$.grep([
{
"text": "Acute Myelocytic Leukemia"
},
{
"text": "Acute Myeloid Leukemia, Adult"
},

{
"text": "Dengue Fever"
},
{
"text": "Diphtheria"
},
{
"text": "Familial Cold Autoinflammatory Syndrome"
},
{
"text": "Familial Mediterranean Fever"
}

],function(item){return item.text[0] == 'A'});

答案 3 :(得分:0)

使用Array.prototype.filter(不需要jQuery)。见http://jsfiddle.net/GycX6/1/

var matches = data.filter(function(obj){
    return obj.text.charAt(0).toLowerCase() == 'a';
});

答案 4 :(得分:0)

也许只检查带有substr的第一个字母,然后使用regexp进行测试?

var matchedResults = [];
for (i = 0; i < json.length; i++) {
    var index = json[i].text;
    var reg = /^[A-Za-z]+$/;
    var first = index.substr(0, 1).toLowerCase();
    if (reg.test(first)) {
     matchedResults[i] = index;   
    }
}

小提琴:http://jsfiddle.net/X6u6k/1/

答案 5 :(得分:0)

似乎你想得到所有以字母开头的元素(a-z,A-Z)

假设您将对象绑定到变​​量名称&#39; koko&#39;。 尝试以下方法:

    for(var i=0;i < koko.length; i++) { 
        if (koko[i].text.match(/^[a-zA-Z]/)) 
            {
              console.log(koko[i].text);
           }
 }

match(/ ^ [a-zA-Z] /)使用正则表达式仅采用属性文本以字母开头的元素。