无法从json响应中设置输入字段中的文本

时间:2014-09-09 11:21:40

标签: javascript jquery json

我有一个表单,我必须在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

3 个答案:

答案 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);


    });    
});