2016-03-31 9 views
0

golangから次のjson応答を取得します。golangを使用してjson応答でカスタムキーを作成する方法

[ 
    { 
     "CreatedOn": "03-22-2015", 
     "JSONReceived": [ 
      { 
       "EzpOrderID": "ezp_126", 
       "FirstName": "Kumar", 
       "LastName": "S", 
       "OrderDesc": "Sample" 
      } 
     ], 
     "Status": "0", 
     "id": "80acbdad-8aae-4d6c-ac63-2a02a9db64b4" 
    }, 
    { 
     "CreatedOn": "03-22-2015", 
     "JSONReceived": [ 
      { 
       "EzpOrderID": "ezp_126", 
       "FirstName": "Vasanth", 
       "LastName": "K", 
       "OrderDesc": "Sample" 
      } 
     ], 
     "Status": "0", 
     "id": "8f7f52a5-793a-45bd-a9b7-ed41495e0ee3" 
    } 
].. 

しかし、私は応答の鍵で作成する必要があります。サンプルレスポンスは次のようになります。 golangプログラミングを使用して達成する方法。

{ 
    "returnResponseData": [{ 
     "CreatedOn": "03-22-2015", 
     "JSONReceived": [{ 
      "EzpOrderID": "ezp_126", 
      "FirstName": "Kumar", 
      "LastName": "S", 
      "OrderDesc": "Sample" 
     }], 
     "Status": "0", 
     "id": "80acbdad-8aae-4d6c-ac63-2a02a9db64b4" 
    }, { 
     "CreatedOn": "03-22-2015", 
     "JSONReceived": [{ 
      "EzpOrderID": "ezp_126", 
      "FirstName": "Vasanth", 
      "LastName": "K", 
      "OrderDesc": "Sample" 
     }], 
     "Status": "0", 
     "id": "8f7f52a5-793a-45bd-a9b7-ed41495e0ee3" 
    }] 
} 

golangを使用してこのタスクを達成するのを手伝ってください。

全体のソースコードは次のように:

func orderList(w http.ResponseWriter, request *http.Request) { 

    rows, err := r.Table("orders").Run(session) 
    if err != nil { 
     fmt.Println(err) 
     return 
    } 

    var resultSet []interface{} 

    err = rows.All(&resultSet) 
    if err != nil { 
     fmt.Printf("Error scanning database result: %s", err) 
     return 
    } 

    if origin := request.Header.Get("Origin"); origin != "" { 
     w.Header().Set("Access-Control-Allow-Origin", origin) 
     w.Header().Set("Access-Control-Allow-Methods", "GET") 
     w.Header().Set("Access-Control-Allow-Headers", 
     "Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization") 
    } 


    w.Header().Set("Content-Type", "application/json") 
    w.WriteHeader(200)    
    json.NewEncoder(w).Encode(resultSet) 



} 

答えて

3

あなたはこのような別のタイプを定義する必要があります。

json.NewEncoder(w).Encode(&Wrapper{ReturnResponseData: resultSet}) 

:あなたの応答が設定含む、

type Wrapper struct { 
    ReturnResponseData []interface{} `json:"returnResponseData"` 
} 

をして、ラッパーをエンコード注目すべきは、プロパティタグを使用して、「returnResponseData」という名前を達成し、小さなletter(エンコーダーはデフォルトでプライベートプロパティをエンコードしないためです)。

+0

ありがとうございます..これは私が期待しているものです。 –

関連する問題