API에 대한 JSON 메시지를 만들려고 할 때 간단하다고 생각되는 작업을 수행하는 데 어려움을 겪고 있습니다. 다음과 같은 메시지를 작성해야했습니다.
{ "list": [ { "foo": 1, "bar": 2 } ] }
그러나 첫 시도는 효과가 없었습니다.
say to-json { foo => [ { a => 1, b => 2 } ] };
# {"foo":[{"a":1},{"b":2}]}
일을 단순화하려고하면 더 혼란 스럽습니다.
say { foo => [ { a => 1 } ] };
# {foo => [a => 1]}
# Note that this is not JSON, but I expected to see curly braces
그런 다음 임시 변수를 사용하려고 시도했지만 작동했습니다.
my @list = { a => 1 };
say to-json { foo => @list };
# {"foo":[{"a":1}]}
my %hash = ( a => 1 );
say to-json { foo => [ %hash ] };
# {"foo":[{"a":1}]}
무슨 일이야?
추가 임시 변수없이 원하는 결과를 얻을 수있는 방법이 있습니까?
흠, 맞아. 물건을 꺼내려고 할 때 잘못 읽은 것 같습니다. 심지어
—
jja
say to-json { foo => [ a => 1 ] }
출력 {"foo":[{"a":1}]}
하면 내가 입력 한 내용을 알 수 있습니다. 내 잘못이야!
say to-json { foo => [ { a => 1 } ] };
싶군요 출력 뭔가{"foo":[{"a":1}]}
하지{"foo":["a":1]}
. 후자는 오타입니다. 그렇지 않다면 무엇을say $*PERL.compiler.version;
말합니까?