blocki
REST API を使用してシリアライズおよび更新したいという JavaScript オブジェクトがあります。だから私は電話します:
JSON.stringify(blocki)
そして、それは私にこの文字列を与えます:
"{"name":"Updated Blocki","bounds":{"x":"2em","y":"2em","w":"8em","h":"12em"}}"
二重引用符で囲まれた文字列の外側に一重引用符が必要であることを除いて、それは私が必要とするものです。
'{"name":"Updated Blocki","bounds":{"x":"2em","y":"2em","w":"8em","h":"12em"}}'
MDN JSON.stringifyの例によると、単一引用符で囲まれた文字列を返す必要があります。しかし、そのページで同じ例を試すと、文字列が二重引用符で囲まれます。たとえばJSON.stringify({})
、Firefox と Chrome コンソールを入力すると、"{}"
代わりに返され'{}'
ます。
外側の引用符が'
. 繰り返しますが、この文字列は私が達成したいことの例です:
'{"name":"Updated Blocki","bounds":{"x":"2em","y":"2em","w":"8em","h":"12em"}}'
理想的には、シリアル化後に文字列を変更するのではなく、オブジェクトをシリアル化する良い方法を学びたいと思っています。
編集:これを行う必要があると思う理由は、文字列が二重引用符で囲まれていると、私が使用している API が何らかの形で満足できないためです。たとえば、私がするとき
curl -i -H "Accept: application/json" -H "Content-type: application/json" -X PUT -d "{"name":"Updated Blocki","bounds":{"x":"2em","y":"2em","w":"8em","h":"12em"}}" 'http://localhost:3000/api/blockies/17'
リクエストは失敗し、サーバーは解析エラーを返します。しかし、私がしようとすると:
curl -i -H "Accept: application/json" -H "Content-type: application/json" -X PUT -d '{"name":"Updated Blocki","bounds":{"x":"2em","y":"2em","w":"8em","h":"12em"}}' 'http://localhost:3000/api/blockies/17'
put リクエストが正常に処理され、オブジェクトが更新されます。