Javascript 基于select值检索json数据

Javascript 基于select值检索json数据,javascript,jquery,Javascript,Jquery,我有一个json数据,格式如下 {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]} 我有一个select标签,如果从选择框中选择的值等于“Jack”,那么它应该打印数据my1@email.com“,“美国” 更改功能上的选择框为 function printDataOf(val){ now if selectd value is Jack alert() // shoul

我有一个json数据,格式如下

 {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}
我有一个select标签,如果从选择框中选择的值等于“
Jack
”,那么它应该打印数据
my1@email.com“,“美国”

更改功能上的选择框为

       function printDataOf(val){

        now if selectd value is Jack
        alert()   // should alert my1@email.com
        alert()   // should alert US
我该怎么做?

这应该行得通

    function check( json_obj ) 
{
    return json_obj[0] == 'Jack'
}
如果您使用的是jquery,也可以尝试以下方法:

json_obj = jQuery.parseJSON( json_obj.responseText );

要检查您真正得到了什么,请使用firebug的调试器

尝试一下,用实际对象更改
json

function printDataOf(val)
{
   for (name in json)
   {
      if (name == val)
      {
          alert(json.name[0]);
          alert(json.name[1]);
      }
   }
}

onchange函数将无法接收实际值。不过,您可以传递选择对象(作为“this”)

检查json对象中是否存在Mval是明智的。如果没有,您将收到一个错误。我这么做不是为了简单


这是一份工作报告。

这应该能满足您的需要

var result = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]};

function printDataOf(val){
   var data = JSON.parse(result);

   var selected = data[val];
   var selected_arr = selected.split(',');

   //now if selectd value is Jack
   alert(selected_arr[0])   // should alert my1@email.com
   alert(selected_arr[1])   // should alert US
}
应该这样做

printDataOf('Jack');

function printDataOf(val) {

    var data = '{"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}';

    var match = JSON.parse(data)[val];
    var email = match[0];
    var country = match[1];

    alert(email);
    alert(country);

}

循环Json数据,然后比较并打印。使用jquery

  var data = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}
var selecteVal="Jack";

$.each(data,function(key,index){
       if (key==selecteVal){
            alert(data[key][0])
             alert(data[key][1])
            }    
       });
请参见试试这个

  var data = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}
  var selecteVal="Jack";

  if(typeof(data[selecteVal])!='undefined'){
     alert(data[selecteVal][0]);//my1@email.com
     alert(data[selecteVal][1]);//US
  }

警报(数据[val][0])
@thg435不起作用:(用你的JSON数组调用的任何东西替换“数据”。@thg435我犯了一个愚蠢的错误,在这样做的时候我把它写成了
警报(JSON_obj[Jack][0])
而不是
警报(JSON_obj[“Jack][0])
。你说得对。你不需要运行循环
printDataOf('Jack');

function printDataOf(val) {

    var data = '{"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}';

    var match = JSON.parse(data)[val];
    var email = match[0];
    var country = match[1];

    alert(email);
    alert(country);

}
  var data = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}
var selecteVal="Jack";

$.each(data,function(key,index){
       if (key==selecteVal){
            alert(data[key][0])
             alert(data[key][1])
            }    
       });
  var data = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}
  var selecteVal="Jack";

  if(typeof(data[selecteVal])!='undefined'){
     alert(data[selecteVal][0]);//my1@email.com
     alert(data[selecteVal][1]);//US
  }