首页 > 解决方案 > 将嵌套的 json 对象转换为另一个 json 对象

问题描述

我一直在玩 json 对象和使用 ReactJS。由变量“res”表示的 json 对象之一。如何将“res”转换为“b”。我还从 api 获取我的 json 对象“res”。

我已经通过此链接解决了我的问题:https ://codesandbox.io/s/epic-leaf-sznhx?file=/src/App.js

const [res, setResult] = useState();
  useEffect(() => {
    (async () => {
      axios.get("https://corona.lmao.ninja/v2/countries").then(response => {
        setResult(response.data);
      });
    })();
  }, []);

我如何转换这个:

const res = 
{
  "0": {
    "id": "1",
    "countryInfo": [
      {
        "_id": "4",
        "lat": "33"
      }
    ]
  },
  "1": {
    "id": "2",
    "countryInfo": [
      {
        "_id": "8",
        "lat": "41"
      }
    ]
  }
}

进入这个 json 对象:

const b =

{
  "popup": {
    "countryInfo": [
      {
        "_id": "1",
        "lat": "33"
      },
      {
        "_id": "2",
        "lat": "41"
      }
    ]
  }
}

标签: javascriptjsonreactjsnested

解决方案


您基本上想要与上一个问题相同的解决方案,例如:

const res = {
  "0": {
    id: "1",
    countryInfo: [{
      _id: "4",
      lat: "33",
    }, ],
  },
  "1": {
    id: "2",
    countryInfo: [{
      _id: "8",
      lat: "41",
    }, ],
  },
};

let b = Object.keys(res).reduce(
  (p, c) => {
    for (let item of res[c].countryInfo) {
      p.popup.countryInfo.push(item);
    }
    return p;
  }, {
    popup: {
      countryInfo: [],
    },
  }
);

console.log(b);


推荐阅读