JSON值搜索

时间:2017-08-10 13:20:28

标签: json

我使用ajax请求从PHP页面获得低于JSON的结果。我尝试了很多以获得理想的结果。我已经完成了以下方法,但仍无法达到预期效果。

{
    "search": {
        "entry": [
            {
                "attribute": [
                    {
                        "name": "title",
                        "value": [
                            "Mr."
                        ]
                    },
                    {
                        "name": "mail",
                        "value": [
                            "kiran@gmail.com",
                            "Kiran@yahoo.com",
                            "kiran@hotmail.com"
                        ]
                    }

                ]
            }
        ]
    }
}

我尝试了以下搜索,以使用Defiant.js

获取值
success: function (data) {
var xx=JSON.stringify(data);
//                    var got = $.each(data.search.entry[0].attribute, function (i, v) {
//                        return v;
//                 
//                    });
           alert(xx);
     var z=JSON.search( xx, '//*[name="title"]/value[1]' );
                  alert(z);
                },         

我如何获得title='Mr'mail='kiran@gmail.com'等结果。

1 个答案:

答案 0 :(得分:0)

如果你的json具有适当的结构,为什么你需要正则表达式解决方案。我已经看到了你的代码和json,似乎你需要 title mail 的第一个索引值。请参阅以下功能,该功能可以搜索标题邮件

var arrt = ' {"search": {"entry": [    {"attribute": [    {"name": "title","value": [    "Mr."]    },    {"name": "mail","value": [    "kiran@gmail.com",    "Kiran@yahoo.com",    "kiran@hotmail.com"]    }]    }]    }}';

    SearchMyWordTT(arrt,"title"); 
    //SearchMyWordTT(arrt,"mail"); 

    function SearchMyWordTT(arr,index){

        arr = JSON.parse(arr);

        for(var i=0;i< arr["search"]["entry"][0]['attribute'].length;i++){          
            if(typeof (arr["search"]["entry"][0]['attribute'][i]['name']) !="undefined" && arr["search"]["entry"][0]['attribute'][i]['name'] == index)
                retIn = arr["search"]["entry"][0]['attribute'][i]['value'][0];
        }

        return retIn;
    }