Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — JSON (JavaScript Object Notation) — VUNESP 2023

TI - Desenvolvimento de SistemasJSON (JavaScript Object Notation)
Código
vu196743
Banca
VUNESP
Órgão
UFABC
Ano
2023
Cargo
Téc ( )
Na notação JSON, de acordo com a especificação ECMA 404, a sequência \u000d, quando usada dentro de uma string, representa o caractere
  1. Abackspace.
  2. Bbarra normal.
  3. Cbarra invertida.
  4. Dretorno de carro (carriage return).
  5. Ealimentação de linha (line feed).
Revelar gabarito e comentário

GabaritoD — retorno de carro (carriage return).

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

JSON: sequências de escape e caracteres de controle

Gabarito: letra D. Na notação JSON, conforme a especificação ECMA-404, a sequência de escape \u000d representa o caractere retorno de carro (carriage return, CR) — o mesmo que \r em muitas linguagens. A confusão clássica é com \u000a, que representa a alimentação de linha (line feed, LF).

A especificação ECMA-404 define que, dentro de uma string JSON, o caractere \u inicia uma sequência de escape Unicode: os quatro dígitos hexadecimais seguintes indicam o code point Unicode do caractere. O valor 000d em hexadecimal corresponde ao decimal 13, que é exatamente o code point do carriage return (CR). Já o line feed (LF) é o code point 000a (decimal 10).

Esses caracteres de controle vêm da tabela ASCII e são amplamente usados em protocolos de comunicação e sistemas operacionais. No JSON, eles não podem aparecer literalmente dentro de uma string — precisam ser representados por escapes como \r, \n ou \u000d, \u000a. A especificação permite que qualquer caractere Unicode seja representado com \u seguido de quatro dígitos hexadecimais, o que inclui os caracteres de controle.

Na prática, quando um parser JSON encontra \u000d dentro de uma string, ele o converte para o caractere CR (0x0D). Isso é útil, por exemplo, para representar quebras de linha em dados que serão processados por sistemas que usam CR como separador de linha (como o formato antigo do Mac OS).

A pegadinha da banca está em trocar \u000d por \u000a — o candidato que decora apenas "\n = line feed" pode marcar a letra E, mas a questão pede especificamente o valor 000d, que é o carriage return. Guarde a tabela:

Escape

Hexadecimal

Decimal

Caractere

\u000a

0A

10

Line feed (LF)

\u000d

0D

13

Carriage return (CR)

\u0008

08

8

Backspace

\u005c

5C

92

Barra invertida

NÃO CAIA NESSA!

A banca explora a confusão entre \u000d (CR) e \u000a (LF). Muitos candidatos associam "quebra de linha" a \n e marcam a letra E, mas o valor 000d é o retorno de carro. Decore: 0A = LF, 0D = CR — a ordem alfabética ajuda: A vem antes de D, e LF vem antes de CR na tabela ASCII.

1\u000a (0A = 10)
Line feed (LF)
2\u000d (0D = 13)
Carriage return (CR)
3\u0008 (08 = 8)
Backspace
4\u005c (5C = 92)
Barra invertida
Escapes Unicode em JSON
LEVELsoulevel.com.br
Escapes Unicode em JSON: \u000a (0A = 10) (Line feed (LF)); \u000d (0D = 13) (Carriage return (CR)); \u0008 (08 = 8) (Backspace); \u005c (5C = 92) (Barra invertida)

Alternativa A — ❌ Incorreta

Backspace é o caractere de controle com code point \u0008 (decimal 8), não \u000d. A banca coloca esse distrator para testar se o candidato conhece os valores hexadecimais dos caracteres de controle mais comuns.

Alternativa B — ❌ Incorreta

Barra normal (/) não é um caractere de controle e não possui escape \u específico — pode ser representada literalmente ou como \u002f. Não corresponde a \u000d.

Alternativa C — ❌ Incorreta

Barra invertida (\) é representada em JSON pelo escape \\ ou pelo code point \u005c (decimal 92). Não tem relação com \u000d.

Alternativa D — ✅ Correta ⟵ GABARITO

\u000d é exatamente o code point Unicode do carriage return (CR), também conhecido como retorno de carro. A especificação ECMA-404 define que \u seguido de quatro dígitos hexadecimais representa o caractere Unicode correspondente, e 000d = 13 = CR.

Alternativa E — ❌ Incorreta

Line feed (LF) é representado por \u000a (decimal 10), não \u000d. É o distrator mais perigoso, pois muitos associam "quebra de linha" a \n e esquecem que o valor hexadecimal específico é 000a.

Gabarito: letra D\u000d representa o retorno de carro (carriage return).

Link permanente: /questoes/vu196743