将JSON从一种格式转换为另一种格式
Convert JSON from one format to other
我正在尝试将下面的JSON转换为另一种格式,其中重用JSON不包含valueChainEntity对象名称,并且我还想删除输入和输出数组。请注意,该结构是父子关系,输入和输出数组可以出现在任何级别的items数组中。即使在所有级别(但仅在项目阵列内部)
var inputJSON = [
{
"valueChainEntity":{
"id":308,
"valueChainEntityId":48,
"items":[
{
"valueChainEntity":{
"id":309,
"valueChainEntityId":49,
"items":[
{
"valueChainEntity":{
"id":312,
"valueChainEntityId":50,
"items":[
]
},
"inputs":[
{
"id":312,
"valueChainEntityId":50,
"items":[
]
}
],
"outputs":[
{
"id":313,
"valueChainEntityId":50
}
]
}
]
}
}
]
}
}
]
var outputJSON= [
{
"id":308,
"valueChainEntityId":48,
"items":[
{
"id":309,
"valueChainEntityId":49,
"items":[
{
"id":312,
"valueChainEntityId":50,
"items":[
]
}
]
}
]
}
]
我的代码:
inputJSON.forEach((item) => {
return item.valueChainEntity;
});
//which will traverse only through the first level and will not delete the **inputs** and **outputs** array..
查看以下是否有效:
function parseInputJSON(inp) {
return inp.map(function (item) {
return getValueChainEntity(item);
});
}
function getValueChainEntity(item) {
if (item['valueChainEntity'] != undefined) {
var valueChainEntity = item.valueChainEntity;
valueChainEntity.items = parseInputJSON(valueChainEntity.items);
return valueChainEntity;
}
return item;
}
var inputJSON=[
{
"valueChainEntity": {
"id": 308,
"valueChainEntityId": 48,
"items": [
{
"valueChainEntity": {
"id": 309,
"valueChainEntityId": 49,
"items": [
{
"valueChainEntity": {
"id": 312,
"valueChainEntityId": 50,
"items": []
},
"inputs": [
{
"id": 312,
"valueChainEntityId": 50,
"items": []
}
],
"outputs": [
{
"id": 313,
"valueChainEntityId": 50
}
]
}
]
}
}
]
}
}];
var newInput = parseInputJSON(inputJSON);
document.getElementById("json").innerHTML = JSON.stringify(newInput, undefined, 4);
<pre id="json"></pre>
这是另一种工作方式。。
样本代码
function populateChildrenRecursively(outputTypeId, valueChainEntities, parentValueChainEntity) {
for (var i = 0; i < valueChainEntities.length; i++) {
if (valueChainEntities[i].valueChainEntity.valueChainEntityId != parentValueChainEntity.valueChainEntity.valueChainEntityId && hasInput(outputTypeId, valueChainEntities[i].inputs)) {
parentValueChainEntity.valueChainEntity.items.push(valueChainEntities[i]);
if (valueChainEntities[i].outputs.length > 0) {
valueChainEntities[i].valueChainEntity.items = [];
for (var j = 0; j < valueChainEntities[i].outputs.length; j++) {
populateChildrenRecursively(valueChainEntities[i].outputs[j].outputTypeId, valueChainEntities, valueChainEntities[i]);
}
}
}
}
}
https://plnkr.co/edit/d2wtXcaU37quthBjgrCu?p=preview
相关文章:
- 有没有一种方法可以从两个标签之间提取文本,并以我选择的格式输出
- 解析一个复杂的JavaScript表达式,将其改写为另一种格式
- 通过javascript将带有日期的字符串格式化为另一种格式
- 将JSON从一种格式转换为另一种格式
- 将 JSON 日期解析为另一种格式
- 将 json 文件转换为另一种格式
- TinyMCE 4:自动将一种块格式应用于新块
- 是Javascript的一种特殊字符串格式
- 我在变量中有一个日期格式.如何将该变量日期转换为另一种格式
- 用JavaScript将日期从一种格式转换为另一种格式
- 如何将字段数据从一种格式更改为另一种格式
- 是否有可能实现一种“;猜测;此日期格式基于数组中的信息
- 将REST JSON输出格式化为另一种格式
- 如何将一种日期格式转换为另一种
- 有没有一种原生的JavaScript方法来解析格式不佳的类似JSON的字符串
- 如果有一种方法可以在Javascript中以JSON格式访问对象属性
- 给定一个特定的日期,是否有一种方法可以在不知道日期是以哪种格式书写的情况下在自由文本文档中搜索该日期?
- 将欧洲价格转换为另一种格式
- 如何将json从一种格式转换为另一种格式
- 当我尝试从另一种日期格式创建一个日期对象时,结果日期正在改变它的值