【问题标题】:How to access JSON array elements from Input to output which are similar in structure如何访问结构相似的从输入到输出的 JSON 数组元素
【发布时间】:2021-10-06 07:48:58
【问题描述】:

我必须使用 javascript 将输入 json 转换为输出 json 消息 以下是输入和输出测试样本 输入

[{
   "Id": "123",
   "Address": "12",
   "Cadre": "LOLOL" 
   "Meeting": {"Output":    [
            {
         "Date": "2020-08-13T15:00:00Z",
         "comment": "Working"
      },
            {
         "timestamp": "2020-08-13T10:03:01Z",
         "comment": "Learning"
      },
          
     ]}
        
    },
    {
   "Id": "345",
   "Address": "14",
   "Cadre": "Loop" 
   "Meeting": {"Output":    [
            {
         "Date": "2020-12-12T18:27:00Z",
         "comment": "Working"
      },
            {
         "timestamp": "2020-11-22T14:53:01Z",
         "comment": "Learning"
      },
          
     ]}
        
    }   
]

输出也应该保持不变,除了“会议/输出/评论”字段中的数组之外的其他字段没有更改。

输出

[{
   "Id": "123",
   "Address": "12",
   "Cadre": "LOLOL" 
   "Meeting": {"Output":    [
            {
         "Date": "2020-08-13T15:00:00Z",
         "comment": "NOt known"
      },
            {
         "timestamp": "2020-08-13T10:03:01Z",
         "comment": "Taken"
      },
          
     ]}
        
    },
    {
   "Id": "345",
   "Address": "14",
   "Cadre": "Loop" 
   "Meeting": {"Output":    [
            {
         "Date": "2020-12-12T18:27:00Z",
         **"comment": "Should Not be"**
      },
            {
         "timestamp": "2020-11-22T14:53:01Z",
         **"comment": "Help///A"**
      },
          
     ]}
        
    }   
]

我采用“for”循环迭代输入有效负载数组对象并检索“会议”对象进行了必要的更改 这个我试过了

session.input.readAsJSON(function(readAsJSONError, payload) {   
    var incomingDataLength = payload.length;    
    for(var i=0; i<incomingDataLength; i++){        
        var reqArr = payload.Meeting.Output;
        if(reqArr === null || reqArr === '' || reqArr === undefined) {
        console.log("Do something");
        } else {
        var reqArrLength = payload.Meeting.Output.length;
        for(var i=0;  i<reqArrLength;  i++){
            reqArrLength[i].comment= callsomefunction(reqArrLength[i].comment);
        }
        }       
    }

});

您能否建议我继续进行此操作。

【问题讨论】:

  • 欢迎来到 Stack Overflow!请拿起tour(你会得到一个徽章!)并通读help center,尤其是How do I ask a good question?你最好的选择是做你的研究,search关于SO和其他地方的相关主题,并给它去吧。 如果您在进行更多研究和搜索后遇到困难并且无法摆脱困境,请发布minimal reproducible example 展示您的尝试并具体说明您遇到的问题。人们会很乐意提供帮助。
  • 参见:stackoverflow.com/questions/11922383/… 此外,JSON 是一种用于数据交换的文本表示法(More here.) 如果你在处理 JavaScript 源代码,而不是处理 string,那么你就不是在处理 JSON。
  • 请添加您目前拥有的代码并准确描述它是如何失败的。 but how the changes can I add include in output 听起来像一个微不足道的问题来解决 tbh。

标签: javascript arrays json


【解决方案1】:

最简单的方法是使用Array.map

var output = input;
output.Meeting.Output = input.Meeting.Output.map(item =>
{
  delete item.comment;
  return item;
});

如果您已经拥有该数组 - 然后使用 Array.forEach

input.Meeting.Output.forEach(item =>
{
  delete item.comment;
});

【讨论】:

  • 嗨 IVO GELOV,我已经尝试在我的代码中使用 map 并看到再次创建了 Array。使用 Map 函数它创建了数组,但在我的有效负载中我已经有了数组。您能否建议是否有其他方法可以继续进行此操作。
  • @Virat 在现有阵列上,您可以使用forEach
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多