programing

jq에서 문자열을 json으로 변환

muds 2023. 3. 2. 22:42
반응형

jq에서 문자열을 json으로 변환

배경

개체 내에 json 문자열이 포함된 json 파일이 있습니다.

{
    "requestType": "POST",
    "response": {
        "size": 78,
        "text": "{\"recordID\":123, \"title\":\"Hello World\", \"content\":\"Lorem ipsum...\"}"
    }
}

그 내용을 간파해야겠어요.response.textjson 명령줄 인터페어, jq를 사용하여 json으로 문자열을 지정합니다.

이 명령어를 실행하면:

jq '.response.text | @json'

출력:"\"{\\\"recordID\\\":123, \\\"title\\\":\\\"Hello World\\\", \\\"content\\\":\\\"Lorem ipsum...\\\"}\""

다음과 같은 방법으로 액세스할 수 있는 json 대신 이상한 이스케이프 json 문자열이 나타납니다..response.text | @json | .recordID.

나는 알고 있다.@json함수는 json을 취득하여 json 이스케이프 문자열을 출력하기 때문에 다른 방법이 필요합니다.@text아무것도 안 하는 것 같아요

질문.

이스케이프된 json의 문자열을 다음과 같은 명령으로 해석할 수 있는 실제 json으로 변환할 수 있는 방법이 있습니까?jq '.response.text | @json | .title'다음의 출력을 얻을 수 있습니다."Hello World"?

를 사용합니다.

문자열을 적절한 json 값으로 해석합니다. tojson(그리고@json)는 반대로 json 값을 가져와 문자열로 변환합니다.

다음과 같이 할 수 있습니다.

.response.text | fromjson.title

다음 작업도 수행할 수 있습니다.

jq -r '.response.text' | jq '.recordID'

언급URL : https://stackoverflow.com/questions/34340549/convert-string-to-json-in-jq

반응형