2015-06-23 6 views
0

вот мой jsonString:Как сохранить модифицированный массив в базу данных sqlite?

{ 
    "status":1, 
    "data":[ 
     { 
     "id":"39", 
     "friendsInfo":{ 
      "email":"[email protected]", 
      "phone":null, 
      "language":"en" 
     } 
     }, 
     { 
     "id":"39", 
     "friendsInfo":{ 
      "email":"[email protected]", 
      "phone":null, 
      "language":"en" 
     } 
     } 
    ], 
    "message":"" 
} 

вот мой receivingClass:

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:

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 элементов, когда я пытаюсь сохранить данные списка в db?

любые идеи? Будем рады помочь! Благодаря!

+0

Можете ли вы показать вашу базу данных создать таблицу запроса. Тогда я знаю о вашей структуре db – Amsheer

ответ

0
mAnswer.dataList.get(0); 

дает обратно

"id":"39", 
    "friendsInfo":{ 
     "email":"[email protected]", 
     "phone":null, 
     "language":"en" 
    } 

это то, что вы должны сказать, в цикле:

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

Я хотел бы использовать этот сайт для создания моих POJO, beucase `s более чистого Я думаю. http://www.jsonschema2pojo.org/ Этот сайт возвращает хорошо определенную архитектуру POJO, что готово к использованию. Просто установите, что вы работаете с JSON вместо JSON Scheme и используете GSON (если вы используете модификацию).

После того, как вы можете скопировать ваши java-файлы на свое рабочее место.

Вам не нужно @SerializedName("jsonName"), если переменная имеет то же имя private String jsonName;

Смежные вопросы