2017-10-31 9 views
0

Retrofitを使用してエンドポイントからオブジェクトを取得しました。応答はこのようなものです:だからカスタムオブジェクト(およびそのリスト)を列としてSQLiteデータベースに保存する方法は?

<?xml version="1.0" encoding="UTF-8"?> 
<crm method="getclients”> 
    <result>0</result> 
    <clients> 
      <client> 
       <idcliente>101</idcliente> 
       <name> SpaceX </name> 
       <addresses> 
         <address> 
          <idaddress>1</idaddress> 
          <name> 1 Rocket Rd Hawthorne </name> 
          <persons> 
           <person> 
             <idperson>1</idperson> 
             <name>Elon Musk</name> 
           </person> 
           <person> 
             <idperson>2</idperson> 
             <name>Gwynne Shotwell</name> 
           </person> 
          </persons> 
          <places> 
           <place> 
            <idplace>1</idplace> 
            <name>Engineering Room</name> 
           </place> 
           <place> 
            <idplace>2</idplace> 
            <name>Main Hall</name> 
           </place> 
           <place>...</place> 
           <place>...</place>  
          </places> 
         </address> 
         <address> 
         .... 
         </address> 
       </addresses> 
      </client> 
      <client>...</client> 
      <client>...</client> 
      <client>...</client> 
    </clients> 
</crm> 

、私は、それぞれのAddress ES、それぞれのPerson sおよびPlace sの人のそれぞれとすべてのClient Sを格納する必要があります。 したがって、クライアントを格納できるデータベースを作成し、AddressにアクセスできるClientを取得し、その後にそのアドレス「Person」およびPlacesにアクセスすることによって、データベースを作成します。

SimpleXmlをコンバータとして使用してRetrofitを使用することで、これらをPOJOのオブジェクトとして取得します。 したがって、これらのClientオブジェクトをデータベースに保存するにはどうすればよいですか?具体的に必要なのは、AddressのリストをClientの列に格納する方法と、このリストのAddressを取得する方法、それぞれPersonPlaceのリストです。

私は、これらのオブジェクトをXMLまたはJSONのいずれかとして保存する必要があることを理解しました。たとえば、gsonを使用するとAddressがjsonアドレスオブジェクトに変換されますが、AddressPersonPlaceの別のテーブルを作成する必要がありますか?

私はデータベースの初心者ですので、私はかなり失われています。誰かがチュートリアル、完全な説明の形でこれに答えることができれば圧倒されるでしょう。

答えて

0

私はこれを行うには2つの可能な方法を考えることができます。

  1. どちらの列を持つ表としてあなたのPOJOを格納します。たぶん、ルームはこれのための良い選択肢だろう。私はこれが実装するより多くの仕事だと思います。

  2. データ構造を含むXMLをデータベースに格納します(例:String)。次に、データベースからXMLを取得するときに、XMLを読み取って解析することができます。これには例えばSimpleXMLを使うことができます。

関連する問題