나는 Elixir을 사용하여 외부 API에서 json을 검색하고이를 Postgresql 데이터베이스에 저장합니다. 독약을 사용하여 json을 Elixir Ecto (2.0) 스키마로 디코딩했습니다. 한 가지 측면을 제외하면 잘 작동합니다. json의 요소는 키가없는 List입니다. 이 요소를 Elixir 구조체에 매핑하는 방법에 대한 손실이 있습니다.Elixir JSON리스트를 구조체로 디코딩
json으로 :
{"name": "Joe Random"
"address": {
"street": "123 Main St",
"city": "Smalltown"
},
"interests": [
"Biking",
"Movies"
]
}
이 JSON가 내장 구조체 (어드레스) 및 임베디드리스트 (이익)과 구조체 (사람)의 형태를 취한다. Ecto.Schemas를 사용하여이 구조를 모델링하고 싶습니다. 그래서 json을로드 할 수 있습니다. 사람과 주소 구조체는 간단하다 :
defmodule Person do
use Ecto.Schema
schema "person" do
field :name, :string
embeds_one :address, Address
end
end
defmodule Address do
use Ecto.Schema
embedded_schema do
field :street, :string
field :city, :string
end
end
나는이 구조체를로드 할 Poison.decode를 사용할 수 있습니다
그러나Poison.decode!(json, as person: %Person{address: %Address{}})
, 어떻게 모델링하고 "관심"저장을 수행하십시오 JSON에서를? 이것은 키가없는 단순한 단일 값 목록입니다. Ecto로 모델링 할 수있는지도로 바꿀 수 있습니까? 이런 문제가 발생한 사람이 있습니까?
모든 안내를 받으실 수 있습니다!
'Person : 관심 분야, 관심 분야, {: 배열, 문자열}'을 원하십니까? – Dogbert
와우, 그랬어! – Will