#javascript #json #rest
#javascript #json #остальное
Вопрос:
Здравствуйте, я хочу создать объект JSON для ресурсов хранения в запросе post в java script, у меня есть значение входного массива, размеры диска, например, ниже:
запрос 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"
}
]
}
],
Лучший способ сделать это с помощью функции или вы можете отправить ее по свойствам?
Комментарии:
1. Использование
Array.prototype.map()
2. И что вы хотите сделать? Вложены ли эти два массива?
3. Плохо, что он представляет диск с unity… что вы будете делать, если они скажут, что размер диска равен 512 МБ? И вы уверены, что он не смешан с GiB, а не с GB? Программно он должен быть просто длиной в байт и быть представлен в удобном для пользователя представлении…
4. Это были два разных типа запросов, один из которых имеет два диска, а другой — 3 диска.
5. @Endless это именно то, что принимает api
Ответ №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>