如何将 JSON 对象添加到 API 调用

我在一个动态创建的数组中有 x 个对象。我想通过 API 发送来单独保存这些对象。问题是可以有 x 个对象。编写一个循环来读取属性名称及其属性值并点击 api,然后读取第二个属性及其值并点击 api 的最佳方法是什么。


所以基本上一次api只会保存一个对象。IE


{

        "attributeName": "s1",

        "attributeValues": [

          "a",

          "b"

        ]

      }

我的 JSON 对象如下所示:


[

  {

    "attributeName": "s1",

    "attributeValues": [

      "a",

      "b"

    ]

  },

  {

    "attributeName": "s2",

    "attributeValues": [

      "c",

      "d"

    ]

  },

  {

    "attributeName": "d1",

    "attributeValues": [

      "p",

      "q"

    ]

  },

  {

    "attributeName": "d2",

    "attributeValues": [

      "r",

      "s"

    ]

  },

  {

    "attributeName": "",

    "attributeValues": [

      ""

    ]

  },

  {

    "attributeName": "d2",

    "attributeValues": [

      "r",

      "s"

    ]

  }

]

我想选择属性名称及其值,然后将其发送到 API。


或者说,我将整个 JSON 保存到 API,那么如果我事先不知道属性名称,我该如何过滤掉单个对象。还有什么其他方法可以获取属性名称列表。


千万里不及你
浏览 163回答 2
2回答

萧十郎

如果你想要以下格式的 json[  {'s1':['a','b']},  {'s2':['c','d']},  {'d1':['p','q']},  {'d2':['r','s']},  {'':['']},  {'d2':['r','s']}]然后你可以对单个孩子进行 api 调用,或者发送整个数组。var arr = [  {    "attributeName": "s1",    "attributeValues": [      "a",      "b"    ]  },  {    "attributeName": "s2",    "attributeValues": [      "c",      "d"    ]  },  {    "attributeName": "d1",    "attributeValues": [      "p",      "q"    ]  },  {    "attributeName": "d2",    "attributeValues": [      "r",      "s"    ]  },  {    "attributeName": "",    "attributeValues": [      ""    ]  },  {    "attributeName": "d2",    "attributeValues": [      "r",      "s"    ]  }];var obj = arr.map((o1) => {  var o = {};  o[o1.attributeName] = o1.attributeValues;  return o;});console.log(JSON.stringify(obj));

素胚勾勒不出你

检查数据的频率。如果 FrontEnd 上的数据太多,那么最好在块中发送。否则可以在 FE 上积累,然后发送。async function sendAll(data) {&nbsp; let results = [];&nbsp; for (let index = 0; index < data.length; index++) {&nbsp; &nbsp; const result = await axios.post('url', data[index].attributeValues);&nbsp; &nbsp; results.push(result);&nbsp; }}带有假模拟 api 的示例。// function* dataLake(data) {//&nbsp; &nbsp;for (let item of data) yield item;// }const getDataFake = data => {&nbsp; return new Promise(r => {&nbsp; &nbsp; setTimeout(() => {&nbsp; &nbsp; &nbsp; r(data);&nbsp; &nbsp; }, 100);&nbsp; });};async function sendAll(data) {&nbsp; let results = [];&nbsp; for (let index = 0; index < data.length; index++) {&nbsp; &nbsp; const result = await getDataFake(data[index].attributeValues);&nbsp; &nbsp; results.push(result);&nbsp; }&nbsp; return results;}const data = [&nbsp; {&nbsp; &nbsp; attributeName: "s1",&nbsp; &nbsp; attributeValues: ["a", "b"]&nbsp; },&nbsp; {&nbsp; &nbsp; attributeName: "s2",&nbsp; &nbsp; attributeValues: ["c", "d"]&nbsp; },&nbsp; {&nbsp; &nbsp; attributeName: "d1",&nbsp; &nbsp; attributeValues: ["p", "q"]&nbsp; },&nbsp; {&nbsp; &nbsp; attributeName: "d2",&nbsp; &nbsp; attributeValues: ["r", "s"]&nbsp; },&nbsp; {&nbsp; &nbsp; attributeName: "",&nbsp; &nbsp; attributeValues: [""]&nbsp; },&nbsp; {&nbsp; &nbsp; attributeName: "d2",&nbsp; &nbsp; attributeValues: ["r", "s"]&nbsp; }];sendAll(data).then(console.log)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript