我有一个表单,我必须在javascript中从httpGet获取json对象后填充数据。
$("#getDetails").click(function() {
$.get("/servlet",{
mID : 5
})
.done(function(data) {
$("#input1").val(data["some key"]);
$("#input2").val(data.name);
$("#input3").val("directvalue");
});
});
在上述3个字段中,只有input3填充了#34; directvalue"。
访问json对象或设置输入字段的值是否有问题。
注意:json对象包含带空格的键,如"某些键":"某些值"
修改
当我尝试Object.keys(data)[index]
访问对象字段时,我得到Uncaught TypeError: Object.keys called on non-object
答案 0 :(得分:0)
试试这个
$("#getDetails").click(function () {
$.get("/servlet", {
mID: 5 })
.success(function (data) {
$("#input1").val(data.d.somekey);
$("#input2").val(data.d.name);
$("#input3").val("directvalue");
});
});
答案 1 :(得分:0)
在评论中,您说它返回此对象:
{
"Name": "my name",
"my address": "23,round street",
"Description": "PM Speech at Red Fort on Indep Day 2014"
}
尝试:
$("#input2").val(data.Name);
答案 2 :(得分:0)
当我console.out(data)
时,它正在打印一个json对象。
但是,当我尝试Object.keys(data)[index]
访问对象字段时,我得到Uncaught TypeError: Object.keys called on non-object
。
这意味着data
本身不是json对象。
所以我得到一个暗示服务器正在给出一个写有json对象的字符串。我必须简单地从data
字符串中解析json对象。
以下是工作代码:
$("#getDetails").click(function() {
$.get("/servlet",{
mID : 5
})
.done(function(data) {
var dataObj=JSON.parse(data);
$("#input1").val(dataObj["some key"]);
$("#input2").val(dataObj.name);
});
});