我從我們的 SAP ERP 系統收到一個包含工單資訊的 JSON 檔案。這來自 REST http 端點。這個較小版本的示例顯示為(陣列大小每次都會不同)..
{
"SeqNo": [
"000000",
"000000"
],
"OpNo": [
"0100",
"0200"
],
"OpDesc": [
"ASSEMBLE, PER DBI & DRAWING",
"FINAL INSPECT PER DBI & DWG"
],
"WorkCent": [
"8000",
"7000"
],
"WorkCentText": [
"ASSEMBLY (SURFACE)",
"QC INSPECTIONS"
]
}
我需要遍歷這個并拉出標題物件和每個陣列項。我的總體意圖是向機器操作員提供格式選擇 -
"SeqNo: 00000, OpNo:0100, OpDesc: ASSEMBLE, PER DBI & DRAWING, WorkCent: 8000, WorkCentText: ASSEMBLY (SURFACE)"
"SeqNo: 00000, OpNo:0200, OpDesc: FINAL INSPECT PER DBI & DWG, WorkCent: 7000, WorkCentText: QC INSPECTIONS"
這將出現在基于 Bootstrap 和 JS 構建的網頁中。根據他們的選擇,這將通過 OPC 路由器將作業訂單資料發送到中間件和 SCADA。
使用 jquery 我可以迭代并抓取物件;“SeqNo”、“OpNo”等。但每個后續陣列都顯示為完整陣列的字串“000000, 000000”。因此,在使用“for”或“for in”的原始 jquery 迭代中,我回傳每個字符;“S”、“e”、“q”等??我嘗試了 stringify 和 parse 來更改 JSON 格式,但我無法提取我需要的資料。
function checkId() {
var sapexport = {
"SeqNo": ["000000", "000000"],
"OpNo": ["0100", "0200"],
"OpDesc": ["ASSEMBLE, PER DBI & DRAWING", "FINAL INSPECT PER DBI & DWG"],
"WorkCent": ["8000", "7000"],
"WorkCentText": ["ASSEMBLY (SURFACE)", "QC INSPECTIONS"]
}
// JSON to string and back
var mystring = JSON.stringify(sapexport)
var mydata = JSON.parse(mystring)
$.each(mydata, function (index, value) {
//alert("Index = " index ", Array = " value); // returns json array header names but full array
// So from the start of this jquery we iterate the JSON objects from SAP
// We now can show the full array values below, but still need to iterate individually
// but they are not objects they are arrays and jquery will not return
//still returns full string
$.each(mydata, function() {
var h = this;
alert(h.toString());
});
}) //initial jquery end
} //function checkid end
如果我可以回傳我需要的物件和陣列單個值,那么將資料切碎以制作字串將很容易。
在我發瘋之前,任何幫助將不勝感激。
uj5u.com熱心網友回復:
如果我正確理解您的目標,這里是 vanila js 的解決方案:
const sapexport = {"SeqNo": ["000000", "000000"],"OpNo": ["0100", "0200"],"OpDesc": ["ASSEMBLE, PER DBI & DRAWING", "FINAL INSPECT PER DBI & DWG"],"WorkCent": ["8000", "7000"],"WorkCentText": ["ASSEMBLY (SURFACE)", "QC INSPECTIONS"]};
const groups = Object.entries(sapexport).reduce((acc, [key, values]) => {
values.forEach((value, index) => {
acc[index] ??= [];
acc[index].push(`${key}: ${value}`);
});
return acc;
}, {});
const result = Object.values(groups).map((group) => group.join(', '));
console.log(result);
// [ "SeqNo: 000000, OpNo: 0100, OpDesc: ASSEMBLE, PER DBI & DRAWING, WorkCent: 8000, WorkCentText: ASSEMBLY (SURFACE)",
// "SeqNo: 000000, OpNo: 0200, OpDesc: FINAL INSPECT PER DBI & DWG, WorkCent: 7000, WorkCentText: QC INSPECTIONS"]
.as-console-wrapper { max-height: 100% !important; top: 0 }
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/503664.html
標籤:javascript jQuery 数组 json 目的
上一篇:嘗試將節點添加到圖表
下一篇:為什么if陳述句給出了錯誤的值?
