2016-05-17 106 views
0

我有兩個表,如零售商和數據庫中的產品。零售商有很多產品。在Golang Struct中分配DB列

他們以下是我在golang中定義的結構。

type Retailers struct { 
    Id int 
    Name string 
    Products []Product 
} 

type Product struct { 
    Id int 
    Description string 
    Url string 
} 

以下是我用來從數據庫中獲取數據的查詢。

select r.id, r.name, p.id, p.description, p.url from retailers r JOIN products on r.id = r.retailer_id 

採用上述結構和查詢我想形成JSON如下

{ 
    "id": "DFT", 
    "name": "Amazon", 
    "products":[ 
     { 
      "id":"APP0001", 
      "description":"Iphone5s", 
      "url":"www.Iphone5s.com" 
     }, 
     { 
      "id":"APP0002", 
      "description":"Iphone6s", 
      "url":"www.Iphone6s.com" 
     } 
    ] 
} 

我怎樣才能做到這一點使用golang?

+1

您對序列化結構或映射數據庫記錄結構問題?這些是兩個不同的問題。 – mpm

+0

@mpm將數據庫記錄映射到struct是我的問題。我的SQL查詢返回兩行。我想按照上面提到的格式來形成JSON。 – SaravanaKumAr

+1

你最好使用一個庫,然後,這裏列出了一堆ORM:https://github.com/avelino/awesome-go#orm,也是這個聲稱接近於SQL鍊金術https:/ /qb.readme.io/ – mpm

回答

0

你需要在你的結構定義指定結構標籤:

type Retailers struct { 
    Id int `json:"id"` 
    Name string `json:"name"` 
    Products []Product `json:"products"` 
} 

type Product struct { 
    Id int `json:"id"` 
    Description string `json:"description"` 
    Url string `json:"url"` 
} 
+0

我的問題是數據庫查詢返回兩行。使用我想要形成上述json。 – SaravanaKumAr

+0

行返回的格式是什麼?如果你的問題是序列化數據,你可以嘗試使用https://github.com/go-gorp/gorp – hbejgel