programing

JSON 파일을 변환할 때 "Invalid JSON 프리미티브" 오류가 발생함

linuxpc 2023. 8. 24. 21:50
반응형

JSON 파일을 변환할 때 "Invalid JSON 프리미티브" 오류가 발생함

PowerShell을 통해 JSON 파일을 변환하려고 할 때:

$json = Get-Content "C:\folder1\test.txt"

$json | ConvertFrom-Json 

write-output $json

다음 오류가 발생합니다.

잘못된 json 프리미티브 : [.
(system.argument.sys)

입력 데이터나 전체 오류 메시지를 제공하지 않았기 때문에 여기서 신중을 기하고 있습니다. 하지만 출력 간의 형식 불일치로 인해 문제가 발생한 것 같습니다.Get-Content및 입력을 제공ConvertFrom-Json기대합니다.

Get-Content입력 파일을 문자열 배열로 읽습니다. 반면ConvertFrom-JsonJSON 데이터를 단일 문자열로 예상합니다.또한 배관$json안으로ConvertFrom-Json의 값은 변경되지 않습니다.$json.

코드를 다음으로 변경하면 오류가 사라집니다(입력 데이터에 구문 오류가 없는 경우).

$json = Get-Content 'C:\folder1\test.txt' | Out-String | ConvertFrom-Json

Write-Output $json

JSON 입력 파일에서 "\"로 제대로 이스케이프되지 않은 문자가 있는지 확인해야 합니다.

또한 다음과 같이 잘못 포맷된 입력 JSON 파일에서도 이 문제가 발생했습니다.

{
    Object1
}
{
    Object2
}

수정된 형식:

[{
     Object1
 },
 { 
     Object2
 }]

일단 포맷이 수정되면, 저는 더 이상 문제가 없었습니다.

저도 이 오류를 받고 있었고, 제 json 파일을 조사한 결과 일부 JSON이 유효하지 않다는 것을 알게 되었습니다.배열의 마지막 개체를 다음과 같은 쉼표로 마무리하고 있었습니다.

[{ ..},]

쉼표를 제거한 것이 스스로 문제를 해결했습니다.

간단히 말해서, 무효 JSON이 저에게 이 문제를 일으켰습니다.

입력 데이터가 다음과 같이 시작하면 이 오류가 발생합니다.

data: [
  {
    ...
  },
  {
    ...
  }
]

제거해야 합니다.data:(그리고 그것만 가지고 있습니다.[그리고.]이 예에서는):

[
  {
    ...
  },
  {
    ...
  }
]

언급URL : https://stackoverflow.com/questions/24453320/invalid-json-primitive-error-when-converting-json-file

반응형