根据select值检索json数据
Retrieve json data based on select value
我有一个json数据,格式如下
{"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]}
我有一个选择标签,如果从选择框中选择的值等于"Jack
",那么它应该打印数据"my1@email.com","US"
更改功能上的选择框为
function printDataOf(val){
now if selectd value is Jack
alert() // should alert my1@email.com
alert() // 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);
}
onchange函数将无法接收实际值。不过,您可以传递select对象(作为"this")。
<select onchange="printDataOf(this)">
<option/>
<option value="Jack">Jack</option>
<option value="Rob">Rob</option>
</select>
现在,在处理程序中,您可以获得实际选定的值并显示所需的数据。
var json_obj = {"Jack":["my1@email.com","US"],"Rob":["rob@email.com","UK"]};
function printDataOf(val){
var Mval = $(val).val();
alert(json_obj[Mval][0]);
alert(json_obj[Mval][1]);
}
明智的做法是检查json对象中是否存在Mval。如果它不在那里,您将收到一个错误。我在这里不是为了保持简单。
下面是一个工作示例。
这应该可以工作。
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":["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
}
循环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])
}
});
参见JSFiddle
试试这个。
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
}
演示
相关文章:
- 如何将JSON数据导入我的ejs模板
- 如何将json数据显示为html
- Json数据包含日期和时间格式
- 用我的json数据填充JQuery DataTable
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 使用jquery读取Json数据
- 如何将本地json数据加载到Extjs数据模型中
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- React-将jSON数据传递给子组件的子组件
- 尝试从控制器加载带有json数据的Simile时间线
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 如何在ReactJs中显示Json数据
- 使用javascript进行JSON数据检索
- tu如何将id放在填充了json数据的html表td上
- 将JSON数据从服务器加载到knockout.jsobservable中
- 使用JavaScript处理JSON数据
- 如何将json数据传递到.js文件
- 如何在带有nunjucks和gullow数据的JSON数据中使用带有HTML的内容
- 如何使用var名称调用JSON数据