[英]Separate key value pair and putting it in another array
I have an JSON object like this: 我有一个像这样的JSON对象:
{
"name": {
"type": "string"
},
"addresses": {
"type": [
"Address"
]
}
}
I want an array like this: 我想要一个这样的数组:
[{
"fieldName": "name",
"fieldType": "string"
},
{
"fieldName": "address",
"fieldType": "Array"
}]
How do i achieve it? 我该如何实现?
How about something like this: 这样的事情怎么样:
function convertFieldType(fieldType) { if (Array.isArray(fieldType)) { return "Array"; } return fieldType; } function getFieldTypes(definition) { return Object.keys(definition).map(function(fieldName) { return { fieldName: fieldName, fieldType: convertFieldType(definition[fieldName].type) }; }); } var def = { "name": { "type": "string" }, "addresses": { "type": [ "Address" ] } }; console.log(getFieldTypes(def));
You need to reorganize your object and that's it. 您需要重新组织对象,仅此而已。
var obj={
"name": {
"type": "string"
},
"addresses": {
"type": [
"Address"
]
}
};
var newJSON=[];
for(k in obj){
var v=obj[k];
newJSON.push({
fieldName:k,
fieldType:Array.isArray(v.type)?"Array":v.type;
});
}
console.log(newJSON);
If you want the class type of the "type" property of your object you can try below code 如果您想要对象的“类型”属性的类类型,可以尝试以下代码
var inputData = {
"name": {
"type": "string"
},
"addresses": {
"type": [
"Address"
]
}
};
var finalArray = [];
for (key in inputData) {
finalArray.push({ fieldName: key, fieldType: Object.prototype.toString.call(inputData[key].type).slice(8, -1) });
}
console.log(finalArray);
You can check below link https://jsfiddle.net/Siddharth_Pandey/4d2u640w/ 您可以在下面的链接中检查https://jsfiddle.net/Siddharth_Pandey/4d2u640w/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.