我有以下格式的json数据
{"Jack":["[email protected]","US"],"Rob":["[email protected]","UK"]}
我有一个选择标记,如果从选择框中选择的值等于“Jack
”那么它应该打印数据"[email protected]","US"
更改功能选择框是
function printDataOf(val){
now if selectd value is Jack
alert() // should alert [email protected]
alert() // should alert US
我该怎么做?
这应该做到;
printDataOf('Jack');
function printDataOf(val) {
var data = '{"Jack":["[email protected]","US"],"Rob":["[email protected]","UK"]}';
var match = JSON.parse(data)[val];
var email = match[0];
var country = match[1];
alert(email);
alert(country);
}
onchange函数将无法接收实际值。您可以传递选择对象(如'this')。
<select onchange="printDataOf(this)">
<option/>
<option value="Jack">Jack</option>
<option value="Rob">Rob</option>
</select>
现在在处理程序中,您可以获得实际选定的值并显示所需的数据。
var json_obj = {"Jack":["[email protected]","US"],"Rob":["[email protected]","UK"]};
function printDataOf(val){
var Mval = $(val).val();
alert(json_obj[Mval][0]);
alert(json_obj[Mval][1]);
}
检查json对象中是否存在Mval是明智的。如果它不存在,您将收到错误。我没有这样做,以保持简单。
这是一个有效的example。
这应该工作。
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]);
}
}
}
for (key in jsonobject) {
alert(jsonobject[val][0];
alert(jsonobject[val][1];
alert(jsonobject[val][2];
}
这应该可以满足您的需求,
var result = {"Jack":["[email protected]","US"],"Rob":["[email protected]","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 [email protected]
alert(selected_arr[1]) // should alert US
}
循环Json数据然后比较和打印。使用jquery ...
var data = {"Jack":["[email protected]","US"],"Rob":["[email protected]","UK"]}
var selecteVal="Jack";
$.each(data,function(key,index){
if (key==selecteVal){
alert(data[key][0])
alert(data[key][1])
}
});
试试这个。
var data = {"Jack":["[email protected]","US"],"Rob":["[email protected]","UK"]}
var selecteVal="Jack";
if(typeof(data[selecteVal])!='undefined'){
alert(data[selecteVal][0]);//[email protected]
alert(data[selecteVal][1]);//US
}