2015-01-12 167 views
0

我需要做一個捲曲POST方法用JSON:擊雙引號逃脫和VAR

request=`$home/post.curl $url " { \"name\": \"aaaaaaa\", \"message\": \"I NEED TO NOT INTERPRET THIS VAR \${rich_message}\" "` 

但誰讀請求的服務器獲取"Message=I NEED TO NOT INTERPRET THIS VAR "

我可以請誰做?

+0

您是否嘗試過使用單引號? (不是我完全不瞭解你的問題,也不是你的問題,你介意擴展一下嗎?) – Biffen

+0

你想讓服務器接收''message「:」我不需要解釋這個VAR $ {rich_message}「 ? – tripleee

+0

是的,我希望服務器接收字面上的「消息」:「我不需要解釋這個VAR $ {rich_message}」 – user3432152

回答

0

\$的嬰兒是錯的。 另外,爲了獲得正確的JSON,最後還是錯過了}。 所以適當JSON應該是:

" { \"name\": \"aaaaaaa\", \"message\": \"I NEED TO NOT INTERPRET THIS VAR ${rich_message}\" }" 
1

如果您需要整個JSON字符串通過字面傳遞,把它放在單引號:

request=$($home/post.curl "$url" '{ "name": "aaaaaaa", 
"message": "I NEED TO NOT INTERPRET THIS VAR \${rich_message}"}$) 

(請注意,我添加缺少的結束}並將過時的反引號更改爲首選的$(...)語法。爲了易讀,我還將字符串分成多行。最後,我把"$url"放在雙引號中,因爲這種類型的字符串通常應該適當地引用。)

如果您需要將整個字符串用雙引號引起來,則您使用的語法將需要額外的反斜槓(反引號與雙引號相似;你需要另一次逃跑才能逃脫逃跑,就像它一樣);但切換到$(...)修復這也是一個副作用。