2016-02-22 68 views
1

我一直在嘗試讀取由網站中的發佈提交發送的數組中包含的值。如何遍歷PostForm中的數組值?

打印r.PostForm數據返回此地圖:

map[myArray[0].val1:[foo1] myArray[0].val2:[foo2] myArray[1].val1:[foo1] myArray[1].val2:[foo2]] 

我們如何處理這些數據?我已經嘗試過這樣的事情:

func request(r http.ResponseWriter, w *http.Request){ 
    r.ParseForm() 
    for key, array := range r.PostForm["myArray"] { 
     // Do something with the val1 and val2 values. 
    } 
} 

但這並沒有工作,我還沒有找到在網絡的任何解決方案。

使用基本解決方案可以讀取Post數據中包含的數組嗎?

+0

我沒有使用名稱= myArray的[指數] .VAL結構更深入地瞭解數據被髮送到我的服務的方式,將數據之後的PHP只結構,但是不能使用golang中的http lib解析,所以我可以使用解析器來處理這種結構,或者更改html,js以使用適當的結構來完成。 –

回答

0

它看起來像你的表格的鍵是"myArray[0].val1","myArray[0].val2",等等。

嘗試:

r.ParseForm() 
for k, v := range r.PostForm { 
    for i, value := range v { 
     // Do something with the i-th value for key k. 
    } 
} 
+1

感謝@ DrJosh9000,這個問題似乎是結構本身,我們認爲PHP結構可以用默認的golang庫解析,但不是,所以我們決定重寫發送數據的表單。 –

+0

如果你正在使用Gin Gonic,那麼這似乎不起作用......即使在調用context.Request.ParseForm()之後,'context.Request.PostForm'似乎總是一個空映射[]。 – BadPirate