JS将数组或者对象转换成数组格式内容
转换成key value的形式
例如:数组
[
{
“ent_id”: “120000\u0001317e0924fae5ca5fb740598728c92f9d\u00012019070115114700003682”,
“ent_type”: 1
}
]
例如:对象
{ “type”: “1”, “entmarks”: [ { “companyName”: “上海市国有资产监督管理委员会”, “creditCode”: “91440300192181490G”, “regNo”: “123456”, “frequencyType”: “1” } ]}
通过最开始判断类型:
判断是对象还是Objec或者其他
typeObj(obj) {
var type = Object.prototype.toString.call(obj)
if (type == '[object Array]') {
return Array
} else if (type == '[object Object]') {
return Object
} else {
return 'Other'
}
},
产生随机ID
GetRandomNum(Min, Max) {
var Range = Max - Min
var Rand = Math.random()
return Min + Math.round(Rand * Range)
},
编写处理数组或者对象的方法
jsonAction(source, value, parentId, type) {
for (var key in source) {
let id = new Date().getTime() + this.GetRandomNum(1, 999999)
let isTypeArray = this.typeObj(source) === Array ? true : false
if (source[key]) {
if (this.typeObj(source[key]) === Object) {
type = Object
} else if (this.typeObj(source[key]) === Array) {
if (this.typeObj(source[key][0]) === Object) {
type = Array
} else {
let valueString = ''
source[key].map((item, index) => {
if (index < source[key].length - 1) {
valueString = valueString + item + ','
} else {
valueString = valueString + item
}
})
source[key] = valueString
type = String
isTypeArray=true
}
} else {
type = String
}
} else {
type = String
}
let newRow = {
paramKey: key,
paramNotnull: 1,
id: id,
lists: [],
}
value.push(newRow)
if (type === Array) {
parentId = parentId + 1
let sourceRecord = []
if (source[key].length > 0) {
if (this.typeObj(source[key][0]) === Object) {
let objData = {}
jsonMerge(source[key], objData)
sourceRecord = objData
}
} else {
sourceRecord = source[key]
}
this.jsonAction(sourceRecord, newRow.lists, newRow.paramType, type)
}
if (type === Object) {
parentId = parentId + 1
this.jsonAction(source[key], newRow.lists, newRow.paramType, type)
}
}
},
导入之前
转换之后的效果图如下: