如何在 Java 中将字符串值转换为自定义模型对象?
How to convert String value to Custom Model Object in Java?
我有一个模型对象。其中,我有多个值。我想将此值存储在 SQLite 中。但是数据很大,所以我想存储直接模型对象
在数据库中。所以我将模型对象转换为字符串并将其存储到数据库中。
现在,问题是如何将此字符串值转换为模型对象。
如果您有任何想法,请与我分享。
例如,
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();
}
考虑使用模型对象的 json 字符串表示。有许多 java 库,例如 Jackson、Gson 等,可以帮助您完成 serialization/deserialization 部分。
这是在 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);
您可以使模型对象可序列化。您需要将序列化对象存储在 SQLite 中。当您需要它时,您只需从 SOLite 获取序列化对象并反序列化它。
您应该为此使用 GSON
或类似的库。
存储到数据库
例如,如果您使用 GSON
Person p = new Person();
p.setname("xyz");
p.setage("18");
Gson gson = new Gson();
String personString = gson.toJson(p);
现在将这个 personString 存储到数据库中。
从数据库读取
从数据库中取回这个对象,从数据库中读取字符串并将其转换为如下对象
String personStringFromDB = READ_LOGIC_OF_DB;
Gson gson = new Gson();
Person p = gson.fromJson(personStringFromDB, Person.class);
有关详细信息,请阅读 GSON - Gson Example
我有一个模型对象。其中,我有多个值。我想将此值存储在 SQLite 中。但是数据很大,所以我想存储直接模型对象 在数据库中。所以我将模型对象转换为字符串并将其存储到数据库中。
现在,问题是如何将此字符串值转换为模型对象。 如果您有任何想法,请与我分享。
例如,
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();
}
考虑使用模型对象的 json 字符串表示。有许多 java 库,例如 Jackson、Gson 等,可以帮助您完成 serialization/deserialization 部分。
这是在 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);
您可以使模型对象可序列化。您需要将序列化对象存储在 SQLite 中。当您需要它时,您只需从 SOLite 获取序列化对象并反序列化它。
您应该为此使用 GSON
或类似的库。
存储到数据库
例如,如果您使用 GSON
Person p = new Person();
p.setname("xyz");
p.setage("18");
Gson gson = new Gson();
String personString = gson.toJson(p);
现在将这个 personString 存储到数据库中。
从数据库读取
从数据库中取回这个对象,从数据库中读取字符串并将其转换为如下对象
String personStringFromDB = READ_LOGIC_OF_DB;
Gson gson = new Gson();
Person p = gson.fromJson(personStringFromDB, Person.class);
有关详细信息,请阅读 GSON - Gson Example