从json对象获取值

时间:2012-08-31 09:05:14

标签: ajax json

我无法从json对象中检索值。从firebug观察时,json数据就像这样:

[{"PROJECT_ID":"CASEENO"},{"PROJECT_ID":"DARKROOM-2"}]

这是我的ajax代码:

$.ajax({
    type: "POST",
    url: "getdata.php",
    dataType: "json",
    data: { 'dataString': projectid }, cache:false,
    success: function(data)
             { 
                  alert(data);
                  for (var i = 0; i < data.length; i++)
                  {             
                     $("#projid").append("<option value=data[i].PROJECT_ID>data                  [i].PROJECT_ID</option>");
                   }   
             }
}); 

alert(data)正在给出[object Object]。 我试过这个data.PROJECT_ID, data[PROJECT_ID],data[i].PROJECT_ID,但项目ID值没有显示在select标签中。 如何从for循环中检索项目ID?

2 个答案:

答案 0 :(得分:1)

如果alert(data)提供[object Object],则data不是数组。它应该输出[object Object],[object Object]

我建议使用console.log(data)来更好地了解data实际上是什么,并检查其结构。这个问题也可能对您有所帮助:Access / process (nested) objects, arrays or JSON

假设data确实是一个数组,要在HTML字符串中使用它的值,你必须使用字符串连接:

$('#projid').append('<option value="' + data[i].PROJECT_ID  + '">' + data[i].PROJECT_ID + '</option>');

或以不同方式创建元素:

$('<option />', {
    value: data[i].PROJECT_ID,
    text: data[i].PROJECT_ID
}).appendTo('#projid');

JavaScript 插入像PHP那样的字符串。

答案 1 :(得分:1)

更改您的陈述 来自

 $("#projid").append("<option value=data[i].PROJECT_ID>data[i].PROJECT_ID</option>");

$("#projid").append("<option value="+data[i].PROJECT_ID+">"+data[i].PROJECT_ID+"</option>");