programing

올바른 형식으로 JSON 파일에 쓰는 방법

minecode 2023. 3. 26. 12:52
반응형

올바른 형식으로 JSON 파일에 쓰는 방법

루비에서 해시를 만들고 있는데 올바른 포맷으로 JSON 파일에 쓰고 싶습니다.

코드는 다음과 같습니다.

tempHash = {
    "key_a" => "val_a",
    "key_b" => "val_b"
}
fJson = File.open("public/temp.json","w")
fJson.write(tempHash)
fJson.close

결과 파일의 내용은 다음과 같습니다.

key_aval_akey_bval_b

시나트라(버전 불명)와 루비 v1.8.7을 사용하고 있습니다.

올바른 JSON 형식으로 파일에 쓰는 방법은 무엇입니까?

JSON 라이브러리 필요 및 사용to_json.

require 'json'
tempHash = {
    "key_a" => "val_a",
    "key_b" => "val_b"
}
File.open("public/temp.json","w") do |f|
  f.write(tempHash.to_json)
end

temp.json 파일은 다음과 같습니다.

{"key_a":"val_a","key_b":"val_b"}

포맷 포함

require 'json'
tempHash = {
    "key_a" => "val_a",
    "key_b" => "val_b"
}
File.open("public/temp.json","w") do |f|
  f.write(JSON.pretty_generate(tempHash))
end

산출량

{
    "key_a":"val_a",
    "key_b":"val_b"
}

이 질문은 루비 1.8에 대한 질문이지만, 구글 검색 시 여전히 맨 위에 표시됩니다.

루비 > = 1.9를 사용할 수 있습니다.

File.write("public/temp.json",tempHash.to_json)

다른 답변에서 언급된 것 외에, 루비 1.8에서는 하나의 라이너 폼을 사용할 수도 있습니다.

File.open("public/temp.json","w"){ |f| f.write tempHash.to_json }

Ubuntu Linux에서 작동하려면:

  1. Ubuntu 패키지 ruby-json을 설치했습니다.

    apt-get install ruby-json
    
  2. 제가 대본을 썼는데${HOME}/rubybin/jsonDEMO

  3. $HOME/.bashrc포함:

    ${HOME}/rubybin:${PATH}
    

(이번에는 bash 명령줄에도 위 내용을 입력했습니다.)

그 후 명령줄에 입력했을 때 동작했습니다.

jsonDemo

언급URL : https://stackoverflow.com/questions/5507512/how-to-write-to-a-json-file-in-the-correct-format

반응형