2017-07-06 83 views
-1

我有\ n中的字符串作爲連接結果:發送JSON用一個多字符串,而不是 n

my_var = ['name','phone','age'].join("\n") 

我將在後作爲一個JSON主體中發送此字符串:

def body 
    { "str": my_var } 
end 

我想給在多條線路的無功而不是發送\ n這樣的:

"name\nphone\nage" 

編輯: 我一個把這個字符串與\ n一起發送給另一個開發團隊,作爲我向他們的uri的發佈請求正文中的json。但他們不希望收到\ n的字符串,並在那裏替換或翻譯。他們想要接受多行。

+0

請提供預期輸出的示例。 – Gerry

+0

好點,這是一個信息我可以用它來證明我的觀點 – Paulo

回答

0

可以使用不同的分離器,然後,在接收時,基於使用

my_delimiter = '\n'my_delimiter = ';'

lines = my_var.split(my_delimiter)該定界符從整串單獨的行。

或者你可以遍歷['name','phone','age']並將它們添加爲單獨的json元素。

如果這沒有幫助,那麼請澄清您的問題。

+0

的reciever希望收到這樣的JSON: {「內容」:「名 電話 時代」 }多行,而不是\ n – Paulo

+0

然後接收者將在'\ n'分隔符上解析多行字符串,或者在Windows中,在'\ r \ n'分隔符上解析。你也可以考慮把數組賦給你的鍵('「str」'),所以你會得到一個像這個'{「content」:[「name」,「phone」,「age」]}'的json。這可以解釋爲行數組。如果您沒有接受接收端並且不知道如何格式化json,請嘗試不同的方法來找出哪些作品。 – Ignas

0

他們接收多條線路,這取決於它們的操作系統:https://en.wikipedia.org/wiki/Newline

2.1.10 :001 > my_var = ['name','phone','age'].join("\n") 
=> "name\nphone\nage" 
2.1.10 :002 > puts my_var 
name 
phone 
age 
=> nil 
2.1.10 :003 > my_var.to_json 
=> "\"name\\nphone\\nage\"" 
2.1.10 :004 > puts my_var.to_json 
"name\nphone\nage" 
=> nil 
2.1.10 :005 > 

文本你把他們包含在其中一個換行符(即\ n字符)的說明。它的圖形顯示到最後。

+0

我同意,問題是,我注意到他們有點慢,理解,所以我嘗試了一種方法來做到這一點......但我現在意識到一個單一字段在多行Json甚至不是一個有效的JSON 。這是我可以向他們展示的信息 – Paulo

0

這是JSON的預期格式。您不應該在值中包含新行,而是使用'\ n'字符。

json = { text: ['name','phone','age'].join("\n") }.to_json 
puts JSON.parse(json)['text'] 

你可以看到解析正確解析它。

pry(main)> puts JSON.parse(json)['text'] 
name 
phone 
age 
=> nil 
相關問題