[json] JSON 값에 여러 줄 문자열이 포함될 수 있습니까?

Java 프로그램에서 읽을 JSON 파일을 작성 중입니다. 조각은 다음과 같습니다 …

{
  "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"
    }
  }
}



답변

사양을 확인하십시오 ! JSON 문법의 char 생성은 다음 값을 가질 수 있습니다.

  • 모든 유니 코드 문자 제외 "\또는 – 또는 제어 문자
  • \"
  • \\
  • \/
  • \b
  • \f
  • \n
  • \r
  • \t
  • \u 4 자리 16 진수

줄 바꿈은 “제어 문자”이므로 문자열 내에 리터럴 줄 바꿈이 없을 수도 있습니다. 그러나 당신의 어떤 조합을 사용하여 인코딩 할 수 있습니다 \n그리고 \r당신이 필요합니다.

JSONLint의 당신의 JSON이 유효 도구 확인한다.


업데이트 : 실제로 데이터에 줄 바꿈을 포함하지 않고 JSON 구문 안에 줄 바꿈을 작성하려면 두 배로 운이 좋지 않습니다. JSON은 어느 정도 인간에게 친숙한 것이지만 여전히 데이터 이며 해당 데이터에 임의의 형식을 적용하려고합니다. 그것은 JSON에 관한 것이 아닙니다.


답변

정확한 요구 사항은 확실하지 않지만 ‘가독성’을 향상시키는 한 가지 가능한 솔루션은 배열로 저장하는 것입니다.

{
  "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."]
    }
  }
}

}

필요할 때마다 다시 조인

result.join(" ")


답변

좋은 해결책은 아니지만 hjson 도구를 사용해 볼 수 있습니다 . 링크 . 편집기에서 여러 줄로 된 텍스트를 작성한 다음 올바른 유효한 JSON 형식으로 변환 할 수 있습니다. 참고 : 새 줄에 ‘\ n’문자를 추가하지만 “모두 바꾸기 ..”기능을 사용하여 텍스트 편집기에서 간단히 삭제할 수 있습니다.

추신 : 질문에 대한 의견이어야하지만 충분한 repo가 ​​없습니다.


답변

내가 이해할 수 있듯이 질문은 제어 기호로 문자열을 전달하는 json방법이 아니라 편집기 제어 기호로 문자열을 분할 할 수있는 파일에 json을 저장하고 복원하는 방법에 관한 것입니다.

여러 줄 문자열을 파일에 저장하려는 경우 파일에 유효한 json개체가 저장되지 않습니다 . 그러나 json프로그램에서만 파일 을 사용하는 경우 원하는대로 데이터를 저장하고 프로그램에로드 할 때마다 파일에서 모든 줄 바꿈을 수동으로 제거한 다음 json 파서로 전달할 수 있습니다.

또는, 더 나은 방법은 json데이터 소스 파일을 원하는대로 편집 한 다음 json프로그램이 사용할 유효한 파일 에 대한 유틸리티를 사용하여 모든 새 줄을 제거 할 수 있습니다.


답변

나는 그것이 당신이 사용하는 json 인터프리터에 달려 있다고 믿습니다 … 일반 자바 스크립트에서는 줄 종결자를 사용할 수 있습니다.

{
  "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."
    }
  }
}


답변