我正在尝试输出每个公司的公司名称和编号。然后,我将能够在列表中的div中显示。 我在jquery,Ajax和Json方面并不是很出色,所以对自己的工作感到有些困惑。
这是我到目前为止编写的代码
function companywith(elem){
var companyWithidList = '#companyWith#';
var ajaxResponse = $.ajax({
type: 'POST',
url: '/mysite/com/mysite/agcharts.cfc',
data: {method: 'getChartInfo', returnformat: 'json', company_idlist: companyWithidList},
dataType: "json",
success: function(response) {
console.log(response);
var json_obj = JSON.parse(JSON.stringify(response));
}
})
}
我取回了我希望取回的数据,但我想显示此数据。我知道我需要使用嵌套循环,因为我有两个数组。
这是在控制台中显示的数据的示例,但我只是不知道如何访问它,因此我可以在网页中显示。
控制台显示------ >>>>>> {栏:Array(2),DATA:Array(155)} 列 : (2)[“ COMPANY_NO”,“ COMPANY_NAME”] 数据 : 数组(155) [0…99] 0 : (2)[69,“公司1”] 1个 : (2)[41,“公司2”] 2 : (2)[130,“公司3”]
我添加了一个each循环,但这仅显示第一个数组,这是错误的,但是我不确定如何在第二个数组中添加。
$.each(json_obj, function(i, v) {
console.log("key is " + i);
console.log("value is " + v);
// parse the option value from json into an object
var obj = JSON.parse(v);
})
console display ---->>>>>>
key is COLUMNS
value is COMPANY_NO,COMPANY_NAME
如果您需要更多信息,请告诉我。 预先感谢
答案 0 :(得分:0)
如果要在表中显示数据,可以使用许多插件。但是最好的之一是数据表插件https://datatables.net/。
或者如果您的json采用这种格式而不是对象数组,则可以用这种方式添加
[{
"COMPANY_NAME":"abc",
"COMPANY_NO":"1224"
},
{
"COMPANY_NAME":"pac",
"COMPANY_NO":"9224"
}]
<table id="output">
</table>
success: function(data){
$.each(json_obj, function( index, value ) {
var row = $("<tr><td>" + value.COMPANY_NAME + "</td><td>" + value.COMPANY_NO + "</td></tr>");
$("#output").append(row);
});
答案 1 :(得分:0)
我的理解是您的答复如下:
{
COLUMNS : ["COMPANY_NO", "COMPANY_NAME"],
DATA : [[69, "company 1"], [41, "company 2"] .....
}
您可以使用响应的data
部分,而不是使用整个响应,然后对其进行迭代并根据需要使用它
因此,您的成功回调函数将类似于
success: function(response) {
console.log(response);
var json_obj = JSON.parse(JSON.stringify(response));
$.each(json_obj["DATA"], function(i, v) { //you loop over the DATA part only
console.log("key is " + i); //this would be index, say 0
console.log("value is " + v); //this would be [69, "company 1"]
// use the values
console.log("id: "+ v[0]); // 69
console.log("name: "+ v[1]);// "company 1"
});
}
但是请注意,各个条目(例如[69, "company 1"]
)是数组。如果它们是json对象,则可以更好地处理它们(以便您可以按每个属性名称而不是位置编号进行访问),在这种情况下,您的响应将包含一个对象数组,而不是它现在拥有的数组数组。 / p>
编辑:您也可以不使用jQuery进行迭代,如下所示:
response["DATA"].forEach(function(element) {
console.log(element); //Array [ 69, "company 1" ]
console.log(element[0]+","+element[1]); //69,company 1
});