Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve as funções bicep para trabalhar com objetos.
contém
contains(container, itemToFind)
Verifica se uma matriz contém um valor, um objeto contém uma chave ou uma cadeia de caracteres contém uma subcadeia de caracteres. A comparação de cadeia de caracteres diferencia maiúsculas de minúsculas. No entanto, ao testar se um objeto contém uma chave, a comparação não diferencia maiúsculas de minúsculas.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| contêiner | Sim | matriz, objeto ou cadeia de caracteres | O valor que contém o valor a ser encontrado. |
| itemToFind | Sim | cadeia de caracteres ou inteiro | O valor a ser encontrado. |
Retornar valor
True se o item for encontrado; caso contrário, False.
Exemplo
O exemplo a seguir mostra como usar contains com tipos diferentes:
param stringToTest string = 'OneTwoThree'
param objectToTest object = {
one: 'a'
two: 'b'
three: 'c'
}
param arrayToTest array = [
'one'
'two'
'three'
]
output stringTrue bool = contains(stringToTest, 'e')
output stringFalse bool = contains(stringToTest, 'z')
output objectTrue bool = contains(objectToTest, 'one')
output objectFalse bool = contains(objectToTest, 'a')
output arrayTrue bool = contains(arrayToTest, 'three')
output arrayFalse bool = contains(arrayToTest, 'four')
A saída do exemplo anterior com os valores padrão é:
| Nome | Tipo | Valor |
|---|---|---|
| stringTrue | Bool | True |
| stringFalse | Bool | Falso |
| objectTrue | Bool | True |
| objectFalse | Bool | Falso |
| arrayTrue | Bool | True |
| arrayFalse | Bool | Falso |
empty
empty(itemToTest)
Determina se uma matriz, objeto ou cadeia de caracteres está vazia ou nula.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| itemToTest | Sim | matriz, objeto ou cadeia de caracteres | O valor a ser verificado se está vazio ou nulo. |
Retornar valor
Retorna True se o valor for vazio ou nulo; caso contrário, False.
Exemplo
O exemplo a seguir verifica se uma matriz, um objeto e uma cadeia de caracteres estão vazios ou nulos.
param testArray array = []
param testObject object = {}
param testString string = ''
param testNullString string?
output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)
output stringNull bool = empty(testNullString)
A saída do exemplo anterior com os valores padrão é:
| Nome | Tipo | Valor |
|---|---|---|
| arrayEmpty | Bool | True |
| objectEmpty | Bool | True |
| stringEmpty | Bool | True |
| stringNull | Bool | True |
interseção
intersection(arg1, arg2, arg3, ...)
Retorna uma única matriz ou objeto com os elementos comuns dos parâmetros.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| arg1 | Sim | objeto ou matriz | O primeiro valor a ser usado para localizar elementos comuns. |
| arg2 | Sim | objeto ou matriz | O segundo valor a ser usado para localizar elementos comuns. |
| argumentos adicionais | Não | objeto ou matriz | Mais valores a serem usados para localizar elementos comuns. |
Retornar valor
Uma matriz ou objeto com os elementos comuns.
Exemplo
O exemplo a seguir mostra como usar intersection com matrizes e objetos:
param firstObject object = {
one: 'a'
two: 'b'
three: 'c'
}
param secondObject object = {
one: 'a'
two: 'z'
three: 'c'
}
param firstArray array = [
'one'
'two'
'three'
]
param secondArray array = [
'two'
'three'
]
output objectOutput object = intersection(firstObject, secondObject)
output arrayOutput array = intersection(firstArray, secondArray)
A saída do exemplo anterior com os valores padrão é:
| Nome | Tipo | Valor |
|---|---|---|
| objectOutput | Objeto | {"one": "a", "three": "c"} |
| arrayOutput | Array | ["two", "three"] |
itens
items(object)
Converte um objeto de dicionário em uma matriz. Confira toObject sobre como converter uma matriz em um objeto.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| objeto | Sim | objeto | O objeto de dicionário a ser convertido em uma matriz. |
Retornar valor
Uma matriz de objetos para o dicionário convertido. Cada objeto na matriz tem uma propriedade key que contém o valor de chave para o dicionário. Cada objeto também tem uma propriedade value que contém as propriedades do objeto .
Exemplo
O exemplo a seguir converte um objeto de dicionário em uma matriz. Para cada objeto na matriz, ele cria um novo objeto com valores modificados.
var entities = {
item002: {
enabled: false
displayName: 'Example item 2'
number: 200
}
item001: {
enabled: true
displayName: 'Example item 1'
number: 300
}
}
var modifiedListOfEntities = [for entity in items(entities): {
key: entity.key
fullName: entity.value.displayName
itemEnabled: entity.value.enabled
}]
output modifiedResult array = modifiedListOfEntities
O exemplo anterior retorna:
"modifiedResult": {
"type": "Array",
"value": [
{
"fullName": "Example item 1",
"itemEnabled": true,
"key": "item001"
},
{
"fullName": "Example item 2",
"itemEnabled": false,
"key": "item002"
}
]
}
O exemplo a seguir mostra a matriz retornada da função de itens.
var entities = {
item002: {
enabled: false
displayName: 'Example item 2'
number: 200
}
item001: {
enabled: true
displayName: 'Example item 1'
number: 300
}
}
var entitiesArray = items(entities)
output itemsResult array = entitiesArray
O exemplo retorna:
"itemsResult": {
"type": "Array",
"value": [
{
"key": "item001",
"value": {
"displayName": "Example item 1",
"enabled": true,
"number": 300
}
},
{
"key": "item002",
"value": {
"displayName": "Example item 2",
"enabled": false,
"number": 200
}
}
]
}
No JSON, um objeto é uma coleção não ordenada de zero ou mais pares chave ou valor. A ordenação pode ser diferente dependendo das implementações. Por exemplo, a função Bicep items() classifica os objetos em ordem alfabética. Em outros lugares, você pode preservar a ordem original. Devido a esse não determinismo, evite fazer suposições sobre a ordenação de chaves de objeto ao escrever código, que interage com os parâmetros e saídas de implantação.
json
json(arg1)
Converte uma cadeia de caracteres JSON válida em um tipo de dados JSON.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| arg1 | Sim | cadeia | O valor a ser convertido para JSON. A cadeia de caracteres deve ser uma cadeia de caracteres JSON formatada corretamente. |
Retornar valor
O tipo de dados JSON de cadeia de caracteres especificada, ou um valor vazio quando nulo for especificado.
Comentários
Se você precisar incluir um valor de parâmetro ou variável no objeto JSON, use a função concat para criar a cadeia de caracteres que você passa para a função.
Exemplo
O exemplo a seguir mostra como usar a função json. Observe que você pode passar null para um objeto vazio.
param jsonEmptyObject string = 'null'
param jsonObject string = '{\'a\': \'b\'}'
param jsonString string = '\'test\''
param jsonBoolean string = 'true'
param jsonInt string = '3'
param jsonArray string = '[[1,2,3]]'
param concatValue string = 'demo value'
output emptyObjectOutput bool = empty(json(jsonEmptyObject))
output objectOutput object = json(jsonObject)
output stringOutput string =json(jsonString)
output booleanOutput bool = json(jsonBoolean)
output intOutput int = json(jsonInt)
output arrayOutput array = json(jsonArray)
output concatObjectOutput object = json(concat('{"a": "', concatValue, '"}'))
A saída do exemplo anterior com os valores padrão é:
| Nome | Tipo | Valor |
|---|---|---|
| emptyObjectOutput | booleano | True |
| objectOutput | Objeto | {"a": "b"} |
| stringOutput | String | testar |
| booleanOutput | booleano | True |
| intOutput | Integer | 3 |
| arrayOutput | Array | [ 1, 2, 3 ] |
| concatObjectOutput | Objeto | {"a": "demo value"} |
comprimento
length(arg1)
Retorna o número de elementos de uma matriz, caracteres de uma cadeia de caracteres ou propriedades em nível raiz de um objeto.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| arg1 | Sim | matriz, cadeia de caracteres ou objeto | A matriz usada para obter o número de elementos, a cadeia de caracteres usada para obter o número de caracteres ou o objeto usado para obter o número de propriedades em nível raiz. |
Retornar valor
Um inteiro.
Exemplo
O exemplo a seguir mostra como usar length com uma matriz e cadeia de caracteres:
param arrayToTest array = [
'one'
'two'
'three'
]
param stringToTest string = 'One Two Three'
param objectToTest object = {
propA: 'one'
propB: 'two'
propC: 'three'
propD: {
'propD-1': 'sub'
'propD-2': 'sub'
}
}
output arrayLength int = length(arrayToTest)
output stringLength int = length(stringToTest)
output objectLength int = length(objectToTest)
A saída do exemplo anterior com os valores padrão é:
| Nome | Tipo | Valor |
|---|---|---|
| arrayLength | int | 3 |
| stringLength | int | 13 |
| objectLength | int | 4 |
objectKeys
objectKeys(object)
Retorna as chaves de um objeto, em que um objeto é uma coleção de pares chave-valor.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| objeto | Sim | objeto | O objeto, que é uma coleção de pares chave-valor. |
Retornar valor
Uma matriz .
Exemplo
O exemplo a seguir mostra como usar objectKeys com um objeto:
var obj = { a: 1, b: 2 }
output keyArray array = objectKeys(obj)
O resultado do exemplo anterior é:
| Nome | Tipo | Valor |
|---|---|---|
| keyArray | Array | [ "a", "b" ] |
keyArray retorna uma lista de chaves do objeto de entrada.
No JSON, um objeto é uma coleção não ordenada de zero ou mais pares chave ou valor. A ordenação pode ser diferente dependendo das implementações. Por exemplo, a função Bicep items() classifica os objetos em ordem alfabética. Em outros lugares, você pode preservar a ordem original. Devido a esse não determinismo, evite fazer suposições sobre a ordenação de chaves de objeto ao escrever código, que interage com os parâmetros e saídas de implantação.
shallowMerge
shallowMerge(inputArray)
Combina uma matriz de objetos, em que apenas os objetos de nível superior são mesclados. Isso significa que, se os objetos que estão sendo mesclados contiverem objetos aninhados, esses objetos aninhados não serão profundamente mesclados. Em vez disso, a propriedade correspondente do objeto de mesclagem substitui-as inteiramente.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| inputArray | Sim | matriz | Uma matriz de objetos . |
Retornar valor
Um objeto.
Exemplo
O exemplo a seguir mostra como usar shallowMerge:
var firstArray = [{ one: 'a' }, { two: 'b' }, { two: 'c'}]
var secondArray = [{ one: 'a', nested: {a: 1, nested: {c: 3}} }, { two: 'b', nested: {b: 2}}]
output firstOutput object = shallowMerge(firstArray)
output secondOutput object = shallowMerge(secondArray)
A saída do exemplo anterior com os valores padrão é:
| Nome | Tipo | Valor |
|---|---|---|
| firstOutput | objeto | {"one":"a","two":"c"} |
| secondOutput | objeto | {"one":"a","nested":{"b":2},"two":"b"} |
firstOutput mostra que as propriedades dos objetos de mesclagem são combinadas em um novo objeto. Se houver propriedades conflitantes (ou seja, propriedades com o mesmo nome), a propriedade do último objeto que está sendo mesclado geralmente terá precedência.
secondOutput mostra que a mesclagem superficial não mescla recursivamente esses objetos aninhados. Em vez disso, a propriedade correspondente do objeto de mesclagem substitui todo o objeto aninhado.
união
union(arg1, arg2, arg3, ...)
Retorna uma única matriz ou objeto com todos os elementos dos parâmetros. Para matrizes, os valores duplicados são incluídos uma vez. Para objetos, os nomes de propriedades duplicados são incluídos apenas uma vez.
Namespace: sys.
Parâmetros
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| arg1 | Sim | objeto ou matriz | O primeiro valor a ser usado para unir elementos. |
| arg2 | Sim | objeto ou matriz | O segundo valor a ser usado para unir elementos. |
| argumentos adicionais | Não | objeto ou matriz | Mais valores a serem usados para unir elementos. |
Retornar valor
Uma matriz ou objeto.
Comentários
A função union usa a sequência dos parâmetros para determinar a ordem e os valores do resultado.
Para matrizes, a função itera através de cada elemento no primeiro parâmetro e o adiciona ao resultado se ainda não estiver presente. Em seguida, ele repete o processo para o segundo parâmetro e outros parâmetros. Se um valor já estiver presente, seu posicionamento anterior na matriz será preservado.
Para objetos, nomes de propriedades e valores do primeiro parâmetro são adicionados ao resultado. Para parâmetros posteriores, todos os novos nomes são adicionados ao resultado. Se um parâmetro posterior tiver uma propriedade com o mesmo nome, esse valor substituirá o valor existente. A ordem das propriedades não é garantida.
A função union mescla não apenas os elementos de nível superior, mas também mescla recursivamente qualquer objeto aninhado dentro deles. Os valores da matriz aninhada não são mesclados. Veja o segundo exemplo na seção a seguir.
Exemplo
O exemplo a seguir mostra como usar union com matrizes e objetos:
param firstObject object = {
one: 'a'
two: 'b'
three: 'c1'
}
param secondObject object = {
three: 'c2'
four: 'd'
five: 'e'
}
param firstArray array = [
'one'
'two'
'three'
]
param secondArray array = [
'three'
'four'
'two'
]
output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)
A saída do exemplo anterior com os valores padrão é:
| Nome | Tipo | Valor |
|---|---|---|
| objectOutput | Objeto | {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"} |
| arrayOutput | Array | ["um", "dois", "três", "quatro"] |
O exemplo a seguir mostra a capacidade de mesclagem profunda:
var firstObject = {
property: {
one: 'a'
two: 'b'
three: 'c1'
}
nestedArray: [
1
2
]
}
var secondObject = {
property: {
three: 'c2'
four: 'd'
five: 'e'
}
nestedArray: [
3
4
]
}
var firstArray = [
[
'one'
'two'
]
[
'three'
]
]
var secondArray = [
[
'three'
]
[
'four'
'two'
]
]
output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)
O resultado do exemplo anterior é:
| Nome | Tipo | Valor |
|---|---|---|
| objectOutput | Objeto | {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]} |
| arrayOutput | Array | [["one","two"],["three"],["four","two"]] |
Se as matrizes aninhadas forem mescladas, o valor de objectOutput.nestedArray será [1, 2, 3, 4], e o valor de arrayOutput será [["one", "two", "three"], ["three", "four", "two"]].
Próximas etapas
- Para obter uma descrição das seções de um arquivo Bicep, consulte Entender a estrutura e a sintaxe dos arquivos Bicep.