2017-01-11 8 views
0

タイトルが私が探しているものを正確に説明しているかどうかわからないので、できるだけ多くの詳細を与えるようにします。空の配列を空の配列としてマーシャリングする方法

私はマーシャルしてAPIに送信するネストされた構造体を持つ構造体を持っています。私の最下位レベルの構造体が空でなければならない要求がいくつかあり、nullの代わりに空の配列になるように親パラメータが必要です。パラメータでomitemptyを使用すると、要求から完全に削除され、要求は失敗します。パラメータのパラメータにomitemptyを使用すると、値がnullになり、要求は失敗します。ここで

は、私がリクエストのために使用しています構造体です:

// SubscribeRequest is the top level wrapper for ICWS request bodies 
SubscribeRequest struct { 
    ClientStateIsFresh bool   `json:"clientStateIsFresh"` 
    StatisticKeys  []StatisticKey `json:"statisticKeys"` 
} 

// StatisticKey is a value we want to pull from ICWS reporting 
StatisticKey struct { 
    StatisticIdentifier string  `json:"statisticIdentifier"` 
    ParameterValueItems []Parameter `json:"parameterValueItems"` 
} 

// Parameter is a filter applied when pulling statistics 
Parameter struct { 
    ParameterTypeID string `json:"parameterTypeId"` 
    Value   string `json:"value"` 
} 

は、私はこのように見えるように整列化されたJSONを必要とする:要求、私はこれ以外のものを持っている場合

{ 
    "clientStateIsFresh":true, 
    "statisticKeys": 
    [ 
     { 
      "statisticIdentifier":"inin.system.interaction:ActiveCalls", 
      "parameterValueItems": 
      [ 

      ] 
     } 
    ] 
} 

失敗する。エラーは発生しませんが、使用可能なデータは返されません。どのようにこれを達成するための任意の提案?

注:[]パラメータの代わりに[] *パラメータを使用しようとしましたが、同じ結果が得られました。

+0

サンプルのSubscribeRequestを埋め込むことができますか。それをどのようにシリアル化したいのか、今取得したものとどのように違うのですか。これまでのhttps://play.golang.org/ – janisz

答えて

0

空の配列が必要な場合は、空のスライスを指定する必要があります。

StatisticKey{ 
    StatisticIdentifier: "id.string", 
    ParameterValueItems: []Parameter{}, 
} 
+0

にある可能性のあるコードを共有することができれば最高です。早速のご返事ありがとうございます! –

関連する問題