function processProductData(jsonString) {
const requiredOriginalKeys = ["品名", "卷轴编码", "宽度", "长度", "重量", "数量"];
const keyMap = {
"品名": "name",
"卷轴编码": "scrollEncoding",
"宽度": "sizeWidth",
"长度": "sizeLength",
"重量": "amount",
"数量": "productCount"
};
let dataArray;
try {
dataArray = JSON.parse(jsonString);
if (!Array.isArray(dataArray)) {
throw new Error("Input data is not a valid JSON array.");
}
} catch (error) {
console.error("Error parsing JSON string:", error);
return JSON.stringify(null);
}
const processedArray = dataArray.map(obj => {
if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
console.warn("Skipping non-object item:", obj);
return obj;
}
const currentKeys = Object.keys(obj);
let shouldProcess = currentKeys.length === requiredOriginalKeys.length;
if (shouldProcess) {
for (const requiredKey of requiredOriginalKeys) {
if (!obj.hasOwnProperty(requiredKey)) {
shouldProcess = false;
break;
}
}
}
if (shouldProcess) {
const newObj = {};
for (const originalKey in obj) {
const newKey = keyMap[originalKey];
newObj[newKey] = obj[originalKey];
}
return newObj;
} else {
return {};
}
});
return JSON.stringify(processedArray);
}
let data = "[{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0124B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C03-B0324B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0122B0\",\"宽度\":1005,\"长度\":4100,\"重量\":433.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C03-B0322B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0322B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0222B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0324B0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0224B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C02-B0122B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C01-B0322B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316B01-B0122B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C04-B0322B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250222A03-B0124B0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250222A05-B0324B0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250222A03-B0122B0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250222A05-B0322B0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250222A04-B0222B0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250222A04-B0122B0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250222A02-C0124C0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250222A02-C0122C0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250223B02-C0324C0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250223B03-C0124C0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C03-C0222C0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C03-C0122C0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C04-B0122B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C02-B0322B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C04-B0224B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C04-B0222B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316B01-B0124B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C04-B0324B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250223B03-C0114C0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250223B02-C0314C0\",\"宽度\":1005,\"长度\":4100,\"重量\":435.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C03-C0223C0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C03-C0123C0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0123B0\",\"宽度\":1005,\"长度\":4100,\"重量\":433.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C03-B0323B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0323B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250315C02-B0223B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C01-B0223B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C01-B0123B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C02-B0123B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C01-B0323B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C04-B0123B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C02-B0323B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C04-B0223B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C02-B0223B0\",\"宽度\":1005,\"长度\":4100,\"重量\":434.3,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316B01-B0123B0\",\"宽度\":1005,\"长度\":4100,\"重量\":433.8,\"数量\":1},{\"品名\":\"XXX\",\"卷轴编码\":\"YG250316C04-B0323B0\",\"宽度\":1005,\"长度\":4100,\"重量\":433.8,\"数量\":1}]"
console.log(processProductData(data))
console