【问题标题】:How to save retrofit array to sqlite database?如何将改造数组保存到 sqlite 数据库?
【发布时间】:2015-06-23 10:29:54
【问题描述】:

这是我的 jsonString:

{  
   "status":1,
   "data":[  
      {  
         "id":"39",
         "friendsInfo":{  
            "email":"test@gmail.com",
            "phone":null,
            "language":"en"
         }
      },
      {  
         "id":"39",
         "friendsInfo":{  
            "email":"test@gmail.com",
            "phone":null,
            "language":"en"
         }
      }
   ],
   "message":""
}

这是我的接收类:

public class mAnswer{

    @SerializedName("status")
    public int mEnterStatus;

    @SerializedName("data")
    public List<Data> dataList;

    public class Data {
        @SerializedName("id")
        public int mUserId;
        @SerializedName("friendsInfo")
        public GetUserDetails getUserDetails;

        public class GetUserDetails{
            @SerializedName("email")
            public int email;
            @SerializedName("phone")
            public String phone;
            @SerializedName("language")
            public String language;    
        }
    }
}

这是我成功接收答案的代码,我试图将这些数据保存到 SQLite db:

private void saveList(){
        Vector<ContentValues> cVVector = new Vector<ContentValues>();

        int arraySize = mAnswer.dataList.size();
        for (int i = 0; i < arraySize; i++){

            // **HERE IS PROBLEM**

            cVVector.add(friendsValue);

        }

        if (arraySize > 0 ){
            ContentValues[] cvArray = new ContentValues[arraySize];
            cVVector.toArray(cvArray);

            mContext.getContentResolver().
                    bulkInsert(J4D_DB_Contract.UserFriendsEntry.CONTENT_URI, cvArray);
        }
    }

所以这是我的问题: 当我尝试将列表数据保存到数据库时如何更正调用@SerializedName 元素?

有什么想法吗? 将很高兴任何帮助!谢谢!

【问题讨论】:

  • 您能否展示您的数据库创建表查询。然后我知道你的数据库结构

标签: android json sqlite retrofit


【解决方案1】:
mAnswer.dataList.get(0);

回馈

 "id":"39",
     "friendsInfo":{  
        "email":"test@gmail.com",
        "phone":null,
        "language":"en"
     }

这就是你应该在循环中说的话:

  mAnswer.dataList.get(0).getFriendsObject().getEmail();
  mAnswer.dataList.get(0).getFriendsObject().getPhone();

我会使用这个站点来生成我的 POJO,因为我认为它更干净。 http://www.jsonschema2pojo.org/ 这个站点返回了定义良好的 POJO 架构,什么都可以使用。 只需设置您正在使用 JSON 而不是 JSON Scheme 并使用 GSON(如果您正在使用改造)。

在你可以将你的 java 文件复制到你的工作场所之后。

如果变量同名private String jsonName;,则不需要@SerializedName("jsonName")

【讨论】:

    猜你喜欢
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 2018-01-16
    • 2015-07-19
    • 2020-11-30
    • 2013-01-18
    • 2021-06-05
    相关资源
    最近更新 更多