Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将拆分JSON推回JSON对象_Javascript_Json_Object - Fatal编程技术网

Javascript 将拆分JSON推回JSON对象

Javascript 将拆分JSON推回JSON对象,javascript,json,object,Javascript,Json,Object,我有一个JSON文件,它可以有多个FromName值。我需要将这些值拆分为单独的值,并将其推回到下面的JSON数据中 FromName(保留名)和FromExtra(保留名) 我已经成功地创建了拆分,但是我无法让拆分以正确的名称在正确的位置推回JSON数据 这是我的JSON文件: [ { "Name": "News 1", "FromName": "John Citizen, Jane

我有一个JSON文件,它可以有多个FromName值。我需要将这些值拆分为单独的值,并将其推回到下面的JSON数据中 FromName(保留名)和FromExtra(保留名)

我已经成功地创建了拆分,但是我无法让拆分以正确的名称在正确的位置推回JSON数据

这是我的JSON文件:

[
    {
        "Name": "News 1",
        "FromName": "John Citizen, Jane Doe",
        "FromEmail": "testemail@notreal.com"
    },
    {
        "Name": "News 2",
        "FromName": "John Citizen",
        "FromEmail": "testemail@notreal.com"
    },
    {
        "Name": "News 3",
        "FromName": "John Citizen",
        "FromEmail": "testemail@notreal.com"
    }
]
以下是我迄今为止编写的代码:

 for (var i = 0; i < abcPre.length; i++) {
    if (abcPre.FromName = []) {
        var sepNames = (abcPre[i].FromName).split(',');
        console.log(sepNames);          

        if (sepNames <= [1]) {
        var FromExtra = sepNames [1];
        console.log(`The new first name ${FromName}`);
        console.log(`The second from name ${FromExtra}`);
        abcPre[i].push.FromExtra;
        console.log(abcPre);
        }


        
    }       
    
    else {
        // console.log(`SentDate loop not working`);
    }
}
这就是我试图实现的输出:

[
    {
        "Name": "News 1",
        "FromName": "John Citizen",
        "FromExtra": "Jane Doe",
        "FromEmail": "testemail@notreal.com"
    },
    {
        "Name": "News 2",
        "FromName": "John Citizen",
        "FromEmail": "testemail@notreal.com"
    },
    {
        "Name": "News 3",
        "FromName": "John Citizen",
        "FromEmail": "testemail@notreal.com"
    }
]

先谢谢你。Javascript是我仍在学习的东西。

我假设,根据您的示例,它在FromNames字段中最多有两个名称

试试这个:

const result = abcPre.map((item) => {
  [FromName, FromExtra] = item.FromName.split(', ');
  return FromExtra ? {
     ...item,
     FromName,
     FromExtra
  } : item;
})

console.log(result)
可以用逗号拆分()然后创建ExtraName属性,请尝试以下操作:

让arr=[
{
“名称”:“新闻1”,
“FromName”:“John Citizen,Jane Doe”,
“FromEmail”:testemail@notreal.com"
},
{
“名称”:“新闻2”,
“FromName”:“约翰公民”,
“FromEmail”:testemail@notreal.com"
},
{
“名称”:“新闻3”,
“FromName”:“约翰公民”,
“FromEmail”:testemail@notreal.com"
}
]
for(设i=0;i1){
arr[i].FromName=splitted[0];
arr[i].ExtraName=splitted[1]
}
}
console.log(arr)
for(设i=0;i1){
arr[i].FromName=splitted[0];
arr[i].ExtraName=splitted[1]
}
}
控制台日志(arr)

你说的“错误的地方”是什么意思?您的预期输出是什么?预期输出:{“Name”:“News 1”,“FromName”:“John Citizen”,“FromExtra”:“Jane Doe”“FromEmail”:testemail@notreal.com“},那么您想跳过第二和第三条记录(新闻2和新闻3)?很抱歉没有解释清楚。我试图将新的FromExtra添加到那些有多个from名称的,而忽略那些没有的。希望这有意义?再次感谢你。索尼特鲁米埃-太好了!非常感谢。我很高兴能帮助你,如果这回答了你的问题,你可以把它标记为正确。
const result = abcPre.map((item) => {
  [FromName, FromExtra] = item.FromName.split(', ');
  return FromExtra ? {
     ...item,
     FromName,
     FromExtra
  } : item;
})

console.log(result)
for(let i = 0; i < arr.length; i++){
    let splitted = arr[i].FromName.split(', ')
    if(splitted.length > 1){
        arr[i].FromName = splitted[0];
        arr[i].ExtraName = splitted[1]
    }
}

console.log(arr)