

[ActiveAndroid](http://www.activeandroid.com/)
で、データ挿入の際にどのように行えばよいかわからず悩んでおります。

[code]

    book.title = "Book"; 
    book.save(); 
    
[/code]

上記のように挿入することは分かったのですが、モデルにデータを挿入する際、どのように行えばよいか思案しています。

よろしくお願いします。

[code]

      public static void jsonParse() {
    
        new Delete().from(Book.class).execute();
        ActiveAndroid.beginTransaction();
    
        try {
            AndroidTestActivity.mContext = app.getContext();
    
            AssetManager assetManager = mContext.getAssets();
    
            InputStream inputStream = assetManager.open(FILE_NAMES);
    
            JsonReader jsonReader = new JsonReader(new InputStreamReader(inputStream));
            Gson gson = new Gson();
            JsonParser parser = new JsonParser();
            JsonArray jArray = parser.parse(jsonReader).getAsJsonArray();
    
            Book book = new Book();
            /** ここでどのように挿入すればよいか */
            book.title = 
            book.author = 
            book.publisher = 
            book.releaseDate = 
    
            book.save();
    
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            ActiveAndroid.setTransactionSuccessful();
        }
        ActiveAndroid.endTransaction();
    }
    
[/code]

**Book.java**

[code]

       @Table(name = "Book")
            public class Book extends Model {
                private static final String TAG = Book.class.getSimpleName();
    
                @Column(name = "title")
                public String title;
    
                @Column(name = "author")
                public String author;
    
                @Column(name = "publisher")
                public String publisher;
    
                @Column(name = "release_date")
                public String releaseDate;
    
                public Book() {
                    super();
                }
                public Book(String title, String author, String publisher, String date) {
                    super();
                    this.title = title;
                    this.author = author;
                    this.publisher = publisher;
                    this.releaseDate = date;
                }
    
                public static Book fromJson(JSONObject jsonObject){
                    Book b = new Book();
    
                    try{
                        b.title = jsonObject.getString("title");
                        b.author = jsonObject.getString("author");
                        b.publisher = jsonObject.getString("publisher");
                        b.releaseDate = jsonObject.getString("release_date");
                        b.save();
                    }catch (JSONException e) {
                        e.printStackTrace();
                        return null;
                    }
                    //return new object
                    return b;
                }
            }
    
[/code]


CC BY-SA 3.0
2015-01-13T11:04:35.057
4505
2015-01-14T07:24:51.127
2015-01-14T06:45:05.333
4537
4537
question
android json sqlite
ActiveAndroid において、jsonArrayの要素をfor文でまわしてBookに挿入する最善の方法


取得したJsonArrayを使用して以下のようにすればいいかと思われます。

[code]

    for(int i=0; i<jArray.length(); i++){
       Book.fromJson(jArray.getJSONObject(i));
    }
    
[/code]


CC BY-SA 3.0
2015-01-14T07:24:51.127
4537
2015-01-14T07:24:51.127
3488
4505
answer