Javascript JSON数据的重新排序

Javascript JSON数据的重新排序,javascript,json,data-structures,Javascript,Json,Data Structures,我是JSON新手,希望重新构造JSON响应 现在是JSON结构- { "map": { "Cityname": "[Jammu, Srinagar]", "Pincode": "[180001, 190001]" } } 我多么需要它- [ { Cityname: "Jammu", Pincode: 180001}, { Cityna

我是JSON新手,希望重新构造JSON响应

现在是JSON结构-

{
    "map": {
    "Cityname": "[Jammu, Srinagar]",
    "Pincode": "[180001, 190001]"
     }
}
我多么需要它-

[
  { Cityname: "Jammu", Pincode: 180001},
  { Cityname: "Srinagar", Pincode: 190001}
] 

有没有办法做到这一点,我搜索了一些可能的解决方案,但无法做到。

您的JSON响应不太符合逻辑,因为city和pincode之间没有映射。我假设cityname和pincode在数组中的顺序相同我使用了您在问题中提供的确切json结构。

如果json数据具有正确的数据类型(Cityname字符串数组/Pincode int数组),则可以跳过子字符串和解析的其他步骤

const json={
“地图”:{
“城市名称”:“[Jammu,斯利那加]”,
“Pincode”:“[180001190001]”
}
}
常量someFunc=()=>{
让输出=[];
const{Cityname,Pincode}=json.map;
const citynameArray=(Cityname.substring(1,Cityname.length-1)).split(“,”;
const pincodeArray=JSON.parse(Pincode);
citynameArray.map((v,i)=>{
push({Cityname:v,Pincode:pincodeArray[i]})
});
返回输出;
}

log(someFunc())您的JSON响应不太符合逻辑,因为city和pincode之间没有映射。我假设cityname和pincode在数组中的顺序相同我使用了您在问题中提供的确切json结构。

如果json数据具有正确的数据类型(Cityname字符串数组/Pincode int数组),则可以跳过子字符串和解析的其他步骤

const json={
“地图”:{
“城市名称”:“[Jammu,斯利那加]”,
“Pincode”:“[180001190001]”
}
}
常量someFunc=()=>{
让输出=[];
const{Cityname,Pincode}=json.map;
const citynameArray=(Cityname.substring(1,Cityname.length-1)).split(“,”;
const pincodeArray=JSON.parse(Pincode);
citynameArray.map((v,i)=>{
push({Cityname:v,Pincode:pincodeArray[i]})
});
返回输出;
}

log(someFunc())这里是一种动态的方式,可以处理任何具有相同布局的json字符串。我修复了一些json字符串

//首先,我们使用JSON.parse()将JSON字符串转换为JS对象。
const data=JSON.parse(`{“map”:{“cityName”:[“Jammu”,“Srinagar”],“pinCode”:[180001190001]}}`);
//城市将容纳我们的城市对象
康斯特城市=[];
//条目(对象)以数组的形式返回对象的键和值
//例如:
//[[key,value],[key,value]]
//forEach()循环遍历每个键、值对。
//因为我们知道我们将得到一个键值对,
//我使用以下方法将数组分解为其键和值:
//[键,值]=[属性];
Object.entries(data.map).forEach((prop)=>{
常量[键,值]=属性;
值。forEach((值,索引)=>{
//现在我们检查当前索引是否为对象。
//我们这样做是因为我们不能添加其他属性和值。
if(城市类型[索引]!=“对象”){
城市[指数]={};
}
//现在我们设置当前值
城市[指数][关键]=价值;
})
})

console.log(城市)这里是一种动态的方式,可以处理任何具有相同布局的json字符串。我修复了一些json字符串

//首先,我们使用JSON.parse()将JSON字符串转换为JS对象。
const data=JSON.parse(`{“map”:{“cityName”:[“Jammu”,“Srinagar”],“pinCode”:[180001190001]}}`);
//城市将容纳我们的城市对象
康斯特城市=[];
//条目(对象)以数组的形式返回对象的键和值
//例如:
//[[key,value],[key,value]]
//forEach()循环遍历每个键、值对。
//因为我们知道我们将得到一个键值对,
//我使用以下方法将数组分解为其键和值:
//[键,值]=[属性];
Object.entries(data.map).forEach((prop)=>{
常量[键,值]=属性;
值。forEach((值,索引)=>{
//现在我们检查当前索引是否为对象。
//我们这样做是因为我们不能添加其他属性和值。
if(城市类型[索引]!=“对象”){
城市[指数]={};
}
//现在我们设置当前值
城市[指数][关键]=价值;
})
})

console.log(城市)这可以通过在两个数组中逐个索引进行遍历来完成,但我们不能保证城市名称和pin码是正确的。最初,cityname和pincode是字符串还是数组?因为在你的问题中,它们看起来像是字符串。。。如果是,请确认。@Miguel这些是数组,但我需要字符串。可以通过在两个数组中逐个索引来完成,但我们不能保证城市名称和pin码是正确的。最初,cityname和pincode是字符串或数组?因为在你的问题中,它们看起来像是字符串。。。如果是,请确认。@Miguel这些是数组,但我需要字符串