10

モデル オブジェクトが 1 つあります。その中で、私は複数の値を持っています。この値を SQLite に保存したいと思います。しかし、データが大きいので、Direct Modelオブジェクトをデータベースに保存したいです。だから私はモデルオブジェクトを文字列に変換してデータベースに保存します。

さて、問題はこの String 値を Model Object に変換する方法です。何か考えがあれば、それを私と共有してください。

例えば、

Person p = new Person();
p.setname("xyz");
p.setage("18");`

String person=p.toString();

Personこの "person" 文字列を" p" モデル オブジェクトに戻す方法。

これは私のコードです。

ContentValues values = new ContentValues();
    String favorite_id = UUID.randomUUID().toString();
    values.put(EMuseumLocalData.KEY_FAVORITE_EXHIBITS_ID, favorite_id);
    values.put(EMuseumLocalData.KEY_EXHIBIT_SUBCATEGORY_ITEM_ID, Integer.parseInt(categoryByCustomerList.get(position).getSubCategoryItemID()));
    try {
        Gson gson = new Gson();
        String personString = gson.toJson(getAllCategory.get(position).toString());
        values.put(EMuseumLocalData.KEY_EXHIBIT_SUBCATEGORY_ITEM_DATA, personString);

        Gson gson1 = new Gson();
        CategoryByCustomer categoryByCustomer = gson1.fromJson(personString, categoryByCustomer.getName());
    } catch (JSONException e) {
        e.printStackTrace();
    }
4

3 に答える 3

18

GSONこれにはまたは同様のライブラリを使用する必要があります。


DBに保存

たとえば、使用する場合GSON

Person p = new Person();
p.setname("xyz");
p.setage("18");
Gson gson = new Gson();
String personString = gson.toJson(p);

この personString を DB に保存します。


DB から読み取る

データベースからこのオブジェクトを取得し、DB から文字列を読み取り、以下のようにオブジェクトに変換します。

String personStringFromDB = READ_LOGIC_OF_DB;
Gson gson = new Gson();
Person p = gson.fromJson(personStringFromDB, Person.class);

詳細については、GSON - Gson の例を参照してください。

于 2016-07-07T06:34:38.123 に答える
0

モデル オブジェクトをシリアライズ可能にすることができます。シリアル化されたオブジェクトを SQLite に保存する必要があります。必要に応じて、シリアル化されたオブジェクトを SOLite から取得し、逆シリアル化します。

于 2016-07-07T06:29:10.390 に答える
0

モデル オブジェクトのjson文字列表現を使用することを検討してください。シリアライゼーション/デシリアライゼーションの部分を支援するために、Jackson、Gson などの多くの Java ライブラリが利用可能です。

Jackson でこれを行うサンプルコードを次に示します。

//For conversion of Person object(person) to json String:

String personJsonString = new com.fasterxml.jackson.databind.ObjectMapper().writeValueAsString(person);


//For conversion of json String back to Person object(person)

Person person = new com.fasterxml.jackson.databind.ObjectMapper().readValue(personJsonString, Person.class);
于 2016-07-07T06:28:16.450 に答える