无法访问JSON对象的值
Cant access value of JSON object
我用烧瓶做了一个小项目。现在,我正在尝试为JSON对象的select添加选项。尽管可以插入选项,但我无法访问它们的值
这是我的烧瓶代码:
for dealership in session.query(Dealership).filter_by(ownerID = userId).all():
dealership_list.append({'Name' : dealership.name})
return jsonify(names = dealership_list)
Ajax代码:
success:function(result){
$.each(result.names, function(Name, value) {
$('#dealerships').append($("<option/>", {
value: Name,
text: value
}));
});
},
result.names
中的每个项目都是一个经销商(由视图函数定义)。
每个经销商都是一个由{"Name":the_name_of_this_dealership}
组成的dict
所以$.each(result.names,function(data){console.log(data)}
应该打印每个对象,该对象是{"Name":some_dealership_name}
所以把它改成
success:function(result){
$.each(result.names, function(dealership) {
$('#dealerships').append($("<option/>", {
value: dealership.Name,
text: dealership.Name
}));
});
},
-或-
更好的方法是更改您的python代码,只返回一个名称列表,因为这是您使用的唯一数据
dealerships = session.query(Dealership).filter_by(ownerID = userId).all()
names = [dealership.name for dealership in dealerships]
return jsonify(names = names)
只需将js更改为
success:function(result){
$.each(result.names, function(index,a_dealer_name) {
$('#dealerships').append($("<option/>", {
value: a_dealer_name,
text: a_dealer_name
}));
});
}
@JoranBeasley太棒了!我使用了第二个解决方案,但添加/更改了以下内容:
$.each(result.names, function(key,name) {
$('#dealerships').append($("<option/>", {
value: name,
text: name
}));
});
这是因为您的解决方案打印的是索引而不是值。谢谢你的帮助!
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- php请求带有多个对象json-jquery
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 动态属性对象 - JSON
- JavaScript 对象 (JSON) 中的动态设置值
- 从数组查询获取对象 JSON 值时出错
- 使用jQuerygetJSON将多维对象JSON转换为HTML
- 需要从 Angular JS 应用程序中的另一个 JSON 对象数组填充 JSON 数组的每个对象 JSON 对象数组
- 嵌套对象JSON排序JavaScript
- PHP在MySQL中保存来自Javascript的对象"JSON.stringify"通过Ajax
- 将JavaScript对象/ JSON转换为PHP数组
- JSON对象.JSON对象内部
- 访问对象的对象- JSON API
- 数组到对象JSON
- Message":"传入的无效对象(JSON数据格式化问题)