Estou escrevendo um arquivo JSON que seria lido por um programa Java. O fragmento é o seguinte ...
{
"testCases" :
{
"case.1" :
{
"scenario" : "this the case 1.",
"result" : "this is a very long line which is not easily readble.
so i would like to write it in multiple lines.
but, i do NOT require any new lines in the output.
I need to split the string value in this input file only.
such that I don't require to slide the horizontal scroll again and again while verifying the correctness of the statements.
the prev line, I have shown, without splitting just to give a feel of my problem"
}
}
}
Respostas:
Confira a especificação ! A produção de char da gramática JSON pode assumir os seguintes valores:
"
-ou-\
-ou-control-character\"
\\
\/
\b
\f
\n
\r
\t
\u
quatro dígitos hexadecimaisNovas linhas são "caracteres de controle", portanto, não, você pode não ter uma nova linha literal em sua string. No entanto, você pode codificá-lo usando qualquer combinação de
\n
e que\r
desejar.A ferramenta JSONLint confirma que seu JSON é inválido.
Atualização: E se você deseja escrever novas linhas dentro de sua sintaxe JSON sem realmente incluir novas linhas nos dados, então você está duplamente sem sorte. Embora JSON tenha o objetivo de ser amigável até certo ponto, ainda são dados e você está tentando aplicar formatação arbitrária a esses dados. JSON não é absolutamente isso.
fonte
Não tenho certeza do seu requisito exato, mas uma solução possível para melhorar a 'legibilidade' é armazená-lo como um array.
A junção de volta sempre que necessário com
fonte
Não é uma solução muito boa, mas você pode tentar a ferramenta hjson . Link . Ele permite que você escreva um texto multilinha no editor e depois o converta para o formato JSON válido adequado. Nota: adiciona caracteres '\ n' para as novas linhas, mas você pode simplesmente excluí-los em qualquer editor de texto com a função "Substituir tudo ..".
PS Deve ser um comentário à pergunta, mas não tenho repositório suficiente, desculpe.
fonte
Pelo que pude entender, a questão não é sobre como passar uma string com símbolos de controle usando,
json
mas como armazenar e restaurar json em um arquivo onde você pode dividir uma string com símbolos de controle do editor.Se você deseja armazenar strings de várias linhas em um arquivo, seu arquivo não armazenará o
json
objeto válido . Mas se você usar seusjson
arquivos apenas em seu programa, poderá armazenar os dados como deseja e remover todas as novas linhas do arquivo manualmente cada vez que carregá-lo no programa e depois passar para o analisador json.Ou, alternativamente, o que seria melhor, você pode ter seus
json
arquivos de fonte de dados onde edita um sting como quiser e, em seguida, remover todas as novas linhas com algum utilitário para ojson
arquivo válido que seu programa usará.fonte
Eu acredito que depende de qual interpretador json você está usando ... em javascript simples você poderia usar terminadores de linha
fonte
a\ c
=>a c
.