태그 보관물: json

json

올바른 형식으로 JSON 파일에 쓰는 방법 “key_b” => “val_b” } fJson

Ruby에서 해시를 만들고 올바른 형식으로 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

Sinatra (버전을 모르겠 음)와 Ruby v 1.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

답변