簡體   English   中英

Ruby-如何在不將“ [”變成“ {“ 0”:”的情況下將哈希轉換為Json數組

[英]Ruby - How can i convert a Hash to Json array without “[” turning into ''{“0”:"

在JavaScript中,我有一個ajax調用,將json發送到我的ruby控制器

$.ajax({
url: "/email_templates/create_email",
type: "POST",
data: {

    email: email, mjml: mjml
},
success: function(resp) {

},
error: function(resp) {
    console.log('There was an error, please contact support.')
},
});

正在發送的Json如下所示:

{"elements":[{"type":"text","options":{"subSection1":"Text style","font":{"size":16,"sizeOptions":[9,10,11,12,13,14,16,18,24,30,36,48,60,62],"family":"inherit","familyOptions":["inherit","Georgia, serif","'Palatino Linotype', 'Book Antiqua', Palatino, serif","'Times New Roman', Times, serif","Arial, Helvetica, sans-serif","'Arial Black', Gadget, sans-serif","'Comic Sans MS', cursive, sans-serif","Impact, Charcoal, sans-serif","'Lucida Sans Unicode', 'Lucida Grande', sans-serif","Tahoma, Geneva, sans-serif","'Trebuchet MS', Helvetica, sans-serif","Verdana, Geneva, sans-serif","'Courier New', Courier, monospace","'Lucida Console', Monaco, monospace"]},"lineHeight":"s2","backgroundColor":"#ffffff","padding":[15,15,15,15],"text":"Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."},"id":"id1524503670739RAND99067","component":"textTemplate"},{"type":"button","options":{"subSection1":"Button settings","buttonText":"Click me","linkTo":{"type":"none","typeOptions":["link","email","none"],"link":""},"subSection2":"Border style","border":{"size":1,"radius":3,"color":"#3498DB","style":"solid","styleOptions":["dotted","solid","dashed"]},"subSection3":"Button style","fullWidth":"false","align":"center","buttonBackgroundColor":"#3498DB","backgroundColor":"#ffffff","font":{"size":16,"sizeOptions":[9,10,11,12,13,14,16,18,24,30,36,48,60,62],"color":"#ffffff","weight":"normal","italic":"","weightOptions":["bold","lighter","inherit","initial","normal",100,200,300,400,500,600,700,800,900],"family":"inherit","familyOptions":["inherit","Georgia, serif","'Palatino Linotype', 'Book Antiqua', Palatino, serif","'Times New Roman', Times, serif","Arial, Helvetica, sans-serif","'Arial Black', Gadget, sans-serif","'Comic Sans MS', cursive, sans-serif","Impact, Charcoal, sans-serif","'Lucida Sans Unicode', 'Lucida Grande', sans-serif","Tahoma, Geneva, sans-serif","'Trebuchet MS', Helvetica, sans-serif","Verdana, Geneva, sans-serif","'Courier New', Courier, monospace","'Lucida Console', Monaco, monospace"]},"innerPadding":[12,20,12,20],"margin":[0,0,0,0],"padding":[15,15,15,15]},"id":"id1524503666177RAND67491","component":"buttonTemplate"}],"emailSettings":{"id":"id1524503660421RAND64452","component":"emailSettingsTemplate","options":{"width":600,"paddingTop":50,"paddingBottom":50,"backgroundColor":"#f4f5f4"},"type":"emailSettings"},"html":""}

以及我在控制器中收到的內容

def create

body_json = params[:email]

p body_json

end

看起來像:

{"elements"=>{"0"=>{"type"=>"text", "options"=>{"subSection1"=>"Text style", "font"=>{"size"=>"16", "sizeOptions"=>["9", "10", "11", "12", "13", "14", "16", "18", "24", "30", "36", "48", "60", "62"], "family"=>"inherit", "familyOptions"=>["inherit", "Georgia, serif", "'Palatino Linotype', 'Book Antiqua', Palatino, serif", "'Times New Roman', Times, serif", "Arial, Helvetica, sans-serif", "'Arial Black', Gadget, sans-serif", "'Comic Sans MS', cursive, sans-serif", "Impact, Charcoal, sans-serif", "'Lucida Sans Unicode', 'Lucida Grande', sans-serif", "Tahoma, Geneva, sans-serif", "'Trebuchet MS', Helvetica, sans-serif", "Verdana, Geneva, sans-serif", "'Courier New', Courier, monospace", "'Lucida Console', Monaco, monospace"]}, "lineHeight"=>"s2", "backgroundColor"=>"#ffffff", "padding"=>["15", "15", "15", "15"], "text"=>"Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."}, "id"=>"id1524503161899RAND77809", "component"=>"textTemplate"}, "1"=>{"type"=>"button", "options"=>{"subSection1"=>"Button settings", "buttonText"=>"Click me", "linkTo"=>{"type"=>"none", "typeOptions"=>["link", "email", "none"], "link"=>""}, "subSection2"=>"Border style", "border"=>{"size"=>"1", "radius"=>"3", "color"=>"#3498DB", "style"=>"solid", "styleOptions"=>["dotted", "solid", "dashed"]}, "subSection3"=>"Button style", "fullWidth"=>"false", "align"=>"center", "buttonBackgroundColor"=>"#3498DB", "backgroundColor"=>"#ffffff", "font"=>{"size"=>"16", "sizeOptions"=>["9", "10", "11", "12", "13", "14", "16", "18", "24", "30", "36", "48", "60", "62"], "color"=>"#ffffff", "weight"=>"normal", "italic"=>"", "weightOptions"=>["bold", "lighter", "inherit", "initial", "normal", "100", "200", "300", "400", "500", "600", "700", "800", "900"], "family"=>"inherit", "familyOptions"=>["inherit", "Georgia, serif", "'Palatino Linotype', 'Book Antiqua', Palatino, serif", "'Times New Roman', Times, serif", "Arial, Helvetica, sans-serif", "'Arial Black', Gadget, sans-serif", "'Comic Sans MS', cursive, sans-serif", "Impact, Charcoal, sans-serif", "'Lucida Sans Unicode', 'Lucida Grande', sans-serif", "Tahoma, Geneva, sans-serif", "'Trebuchet MS', Helvetica, sans-serif", "Verdana, Geneva, sans-serif", "'Courier New', Courier, monospace", "'Lucida Console', Monaco, monospace"]}, "innerPadding"=>["12", "20", "12", "20"], "margin"=>["0", "0", "0", "0"], "padding"=>["15", "15", "15", "15"]}, "id"=>"id1524503164308RAND72755", "component"=>"buttonTemplate"}}, "emailSettings"=>{"id"=>"id1524503150293RAND50259", "component"=>"emailSettingsTemplate", "options"=>{"width"=>"600", "paddingTop"=>"50", "paddingBottom"=>"50", "backgroundColor"=>"#f4f5f4"}, "type"=>"emailSettings"}, "html"=>""}

所以我通常在ruby中將哈希值轉換為json的方法是.to_json

但這就是我的輸出:

{"elements":{"0":{"type":"text","options":{"subSection1":"Text style","font":{"size":"16","sizeOptions":["9","10","11","12","13","14","16","18","24","30","36","48","60","62"],"family":"inherit","familyOptions":["inherit","Georgia, serif","'Palatino Linotype', 'Book Antiqua', Palatino, serif","'Times New Roman', Times, serif","Arial, Helvetica, sans-serif","'Arial Black', Gadget, sans-serif","'Comic Sans MS', cursive, sans-serif","Impact, Charcoal, sans-serif","'Lucida Sans Unicode', 'Lucida Grande', sans-serif","Tahoma, Geneva, sans-serif","'Trebuchet MS', Helvetica, sans-serif","Verdana, Geneva, sans-serif","'Courier New', Courier, monospace","'Lucida Console', Monaco, monospace"]},"lineHeight":"s2","backgroundColor":"#ffffff","padding":["15","15","15","15"],"text":"Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."},"id":"id1524503835438RAND4461","component":"textTemplate"},"1":{"type":"button","options":{"subSection1":"Button settings","buttonText":"Click me","linkTo":{"type":"none","typeOptions":["link","email","none"],"link":""},"subSection2":"Border style","border":{"size":"1","radius":"3","color":"#3498DB","style":"solid","styleOptions":["dotted","solid","dashed"]},"subSection3":"Button style","fullWidth":"false","align":"center","buttonBackgroundColor":"#3498DB","backgroundColor":"#ffffff","font":{"size":"16","sizeOptions":["9","10","11","12","13","14","16","18","24","30","36","48","60","62"],"color":"#ffffff","weight":"normal","italic":"","weightOptions":["bold","lighter","inherit","initial","normal","100","200","300","400","500","600","700","800","900"],"family":"inherit","familyOptions":["inherit","Georgia, serif","'Palatino Linotype', 'Book Antiqua', Palatino, serif","'Times New Roman', Times, serif","Arial, Helvetica, sans-serif","'Arial Black', Gadget, sans-serif","'Comic Sans MS', cursive, sans-serif","Impact, Charcoal, sans-serif","'Lucida Sans Unicode', 'Lucida Grande', sans-serif","Tahoma, Geneva, sans-serif","'Trebuchet MS', Helvetica, sans-serif","Verdana, Geneva, sans-serif","'Courier New', Courier, monospace","'Lucida Console', Monaco, monospace"]},"innerPadding":["12","20","12","20"],"margin":["0","0","0","0"],"padding":["15","15","15","15"]},"id":"id1524503838073RAND14158","component":"buttonTemplate"}},"emailSettings":{"id":"id1524503495697RAND55315","component":"emailSettingsTemplate","options":{"width":"600","paddingTop":"50","paddingBottom":"50","backgroundColor":"#f4f5f4"},"type":"emailSettings"},"html":""}

為什么會改變

{"elements":[{"type"

{"elements":{"0":{"type"

我需要將它確切地保存到數據庫的方式是如何從JavaScript發送,但是我似乎無法將其轉換為正確的格式。 有人可以幫助我,向我解釋我做錯了什么。

我的問題最終是在Javascript方面而不是紅寶石

$.ajax({
url: "/email_templates/create_email",
type: "POST",
data: {

    email:email, mjml: mjml
},
success: function(resp) {

},
error: function(resp) {
    console.log('There was an error, please contact support.')
},
});

我應該通過JSON.stringify(email)發送email:email

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM