Получение ошибки при передаче массива объектов в jsonapi.marshal - PullRequest
0 голосов
/ 11 декабря 2019
type Response struct {
    EmpID string                     `json:"EmpID" jsonapi:"primary,Employee"`
    OwnerID   string                 `json:"OwnerId" jsonapi:"attr,owner_id"`
    Start     string                 `json:"Start" jsonapi:"attr,start"`
    End       string                 `json:"End" jsonapi:"attr,end"`
    Metadata  map[string]interface{} `json:"metadata" jsonapi:"attr,Metadata"`
}

response :=[]*Response

response = **// data here //**

result := &response

Теперь, если я это сделаю, jsonapi.Marshal (result)

error : модели должны быть указателем структуры или фрагментом структуры указателей error

Я попытался создать новую структуру и поместил структуру массива внутри этого. Примерно так.

type ArrayResponse struct {
NewResponse *[]Response  `jsonapi:"attr,NewResponse"`
}

Я получаю все данные внутри атрибутов, так как я упомянул attr в приведенной выше структуре. Но в идеале, есть ли способ получить массив объектов для маршалинга в jsonapi, не делая этого. Мне нужен ответ в следующем формате json api.

{  
"data":[  
  {  
     "type":"filetype",
     "id":"c33e05b7-8f55-4ee1-8d61-5b5da9110b2f",
     "attributes":{  
        "created_at":"2017-07-02T09:11:10.005351Z",
        "updated_at":"2017-07-02T09:11:10.005374Z",
        "created_by":"USER_ID",
        "url_page":null,
        "resource_urls":null,
        "attachment_type_id":"1",
        "url_type_id":"1",
        "url_version":null
     },
     "relationships":{  
        "item":{  
           "data":{  
              "type":"items",
              "id":"f0c2e244-ec02-4a75-bd36-da1f703136e7"
           }
        }
     }
  },
  {  
     "type":"filetype",
     "id":"cc06bbb5-b4f8-4351-90f3-01df3f3f2116",
     "attributes":{  
        "created_at":"2017-08-02T09:11:10.005351Z",
        "updated_at":"2017-08-02T09:11:10.005374Z",
        "created_by":"USER_ID",
        "url_page":null,
        "resource_urls":null,
        "attachment_type_id":"1",
        "url_type_id":"1",
        "url_version":null
     },
     "relationships":{  
        "item":{  
           "data":{  
              "type":"items",
              "id":"b0300df2-365e-44b4-bfc4-f3170dca2289"
           }
        }
     }
  }
]}
...