【问题标题】:Create Nested JSON object Javascript创建嵌套 JSON 对象 Javascript
【发布时间】:2017-02-14 06:44:58
【问题描述】:

您好,我想在 java 脚本的 post 请求中为存储资源创建一个 JSON 对象,我有一个输入数组值磁盘大小,例如:

请求1 输入 = [10, 20, 30]

 "storageResources": [
  {
    "stats": [
      {
        "name": "diskSize",
        "units": "GB",
        "value": 10
      },
      {
        "name": "diskIopsConsumed",
        "value": 0
      },
      {
        "name": "diskConsumedFactor",
        "value": 1
      }
    ]
  },
  {
    "stats": [
      {
        "name": "diskSize",
        "units": "GB",
        "value": 20
      },
      {
        "name": "diskIopsConsumed",
        "value": 1
      },
      {
        "name": "diskConsumedFactor",
        "value": "NaN"
      }
    ]
  },
  {
    "stats": [
      {
        "name": "diskSize",
        "units": "GB",
        "value": 30
      },
      {
        "name": "diskIopsConsumed",
        "value": 0
      },
      {
        "name": "diskConsumedFactor",
        "value": 1
      }
    ]
  },
],

请求2: 输入[10,20]

    "storageResources": [
  {
    "stats": [
      {
        "name": "diskSize",
        "units": "GB",
        "value": 10
      },
      {
        "name": "diskIopsConsumed",
        "value": 0
      },
      {
        "name": "diskConsumedFactor",
        "value": 1
      }
    ]
  },
  {
    "stats": [
      {
        "name": "diskSize",
        "units": "GB",
        "value": 20
      },
      {
        "name": "diskIopsConsumed",
        "value": 1
      },
      {
        "name": "diskConsumedFactor",
        "value": "NaN"
      }
    ]
  }
],

最好的方法是使用函数还是可以通过属性发送它?

【问题讨论】:

  • 使用Array.prototype.map()
  • 你想做什么?嵌套这两个数组?
  • 感觉不好,因为它代表磁盘,因为统一......如果他们说磁盘大小是 512 MB,你会怎么做?您确定它没有与 GiB 而不是 GB 混合吗?以编程方式,它应该只是字节长度,并在人类友好的视图中表示......
  • 这是两种不同类型的请求,一种有两个磁盘,另一种有 3 个磁盘。
  • @Endless 这正是 api 所需要的

标签: javascript json rest


【解决方案1】:

使用 Array.prototype.map 返回修改后的响应

$$text.oninput = evt => {
  let json = JSON.parse($$text.value)
  let result = json.storageResources.map(resource =>
    resource.stats.find(e => e.name == 'diskSize').value
  )
  
  console.log(result)
}

$$text.oninput()
<textarea id="$$text">{"storageResources":[{"stats":[{"name":"diskSize","units":"GB","value":10},{"name":"diskIopsConsumed","value":0},{"name":"diskConsumedFactor","value":1}]},{"stats":[{"name":"diskSize","units":"GB","value":20},{"name":"diskIopsConsumed","value":1},{"name":"diskConsumedFactor","value":"NaN"}]},{"stats":[{"name":"diskSize","units":"GB","value":30},{"name":"diskIopsConsumed","value":0},{"name":"diskConsumedFactor","value":1}]}]}</textarea>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2021-10-02
    • 2018-09-30
    相关资源
    最近更新 更多