단일 항목이 있는 배열로 변환
JSON 직렬화된 배열을 만들려고 합니다.해당 배열에 하나의 항목만 포함된 경우 문자열을 얻을 수 있지만 문자열의 배열은 얻을 수 없습니다(JSON에서).
여러 항목(예상대로 작동):
PS C:\> @("one", "two") | ConvertTo-JSON
[
"one",
"two"
]
단일 항목 배열(예상 외):
PS C:\> @("one") | ConvertTo-JSON
"one"
내가 뭘 빼놓았나요?
파이프라인 없이 시도:
PS C:\> ConvertTo-Json @('one', 'two')
[
"one",
"two"
]
PS C:\> ConvertTo-Json @('one')
[
"one"
]
저도 이 문제에 부딪혔지만 제 구조가 너무 깊어서 Convert To-Json이 일정 깊이 이하의 모든 것을 끈으로 납작하게 만들었기 때문입니다.
예를 들어,
PS C:\> $MyObject = @{ "a" = @{ "b" = @{ "c" = @("d") } } }
PS C:\> ConvertTo-Json $MyObject
{
"a": {
"b": {
"c": "d"
}
}
}
이 문제를 해결하려면 -Depth에 값을 더 크게 전달할 수 있습니다.
PS C:\> ConvertTo-Json $MyObject -Depth 100
{
"a": {
"b": {
"c": [
"d"
]
}
}
}
나도 같은 문제가 있어서 알게 됐어요, 당신이 그냥 그 문제를 추가할 수 있다는 걸요.-AsArray
에게ConvertTo-Json
지휘.예:
❯ @("one") | ConvertTo-Json -AsArray
[
"one"
]
❯ @("one", "two") | Convert-ToJson -AsArray
[
"one",
"two"
]
오늘도 같은 문제에 직면했습니다.덧붙이자면, 이런 물건이 있다면
@{ op="replace"; path="clientName"; value="foo"}
다음으로 지정해야 합니다.
ConvertTo-Json @( @{ op="replace"; path="clientName"; value="foo"} )
이중 @s는 때때로 혼동될 수 있습니다.
이 문제에 직면한 것은 개체의 하위 배열입니다.그 배열 안에는 하나의 물체가 들어 있었고,ConvertTo-Json
배열에서 개체를 제거하고 있었습니다.
이를 해결하기 위한 두 가지 사항:
나는 그것을 설정해야만 했습니다.-Depth
매개 변수 onConvertTo-Json
$output = $body | ConvertTo-Json -Depth 10
배열의 개체를 해시 테이블로 만든 다음 개체로 변환해야 했습니다.
$myArray.Add([pscustomobject]@{prop1 = ""; prop2 = "" })
@ 앞에 a를 놓습니다.
,@("one") | ConvertTo-Json
[
"one"
]
저의 경우 준비된 목록은 함수에서 반환된 배열이었습니다.이것은 단순한 줄 배열이었습니다.어레이가 작동하기 전에 @($ReturnedObject)로 다시 래핑해야 했습니다.
To-Json 변환 @($ReturnObject)
5.1 및 7.x를 인식하는 것은 좋지 않습니다. 7.x는 사용자가 말하는 대로 수행하지만 5.1은 다음과 같이 수행합니다.
{
"value": [
"one"
],
"Count": 1
}
언급URL : https://stackoverflow.com/questions/18662967/convertto-json-an-array-with-a-single-item
'source' 카테고리의 다른 글
자바스크립트 객체를 sessionStorage에 저장합니다. (0) | 2023.10.24 |
---|---|
CentOS에서 Python.h 파일을 찾을 수 없습니다. (0) | 2023.10.24 |
AngularJS $http 오류 함수가 호출되지 않았습니다. (0) | 2023.10.24 |
내 자바스크립트 파일의 캐싱을 방지하는 방법은? (0) | 2023.10.24 |
Larravel 5에서 Expellent를 사용하여 피벗 테이블을 업데이트하는 방법 (0) | 2023.10.24 |