如何在 Java 中将字符串值转换为自定义模型对象?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/38238712/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to convert String value to Custom Model Object in Java?
提问by Android Develeoper
I have one Model Object. In which, i have multiple values. I want to store this Values in SQLite. But data is large, so i want to store Direct Model object in databse. So i convert model Object to string and store it into database.
我有一个模型对象。其中,我有多个值。我想将此值存储在 SQLite 中。但是数据很大,所以我想在数据库中存储直接模型对象。所以我将模型对象转换为字符串并将其存储到数据库中。
Now, Problem is that how to convert this String value to Model Object. If you have any idea, please share that with Me.
现在,问题是如何将此字符串值转换为模型对象。如果您有任何想法,请与我分享。
For example,
例如,
Person p = new Person();
p.setname("xyz");
p.setage("18");`
String person=p.toString();
Now How to get this "person" string back to Person
"p
" model object.
现在如何将这个“人”字符串返回到Person
“ p
”模型对象。
This is my code.
这是我的代码。
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();
}
回答by Pankaj Kumar
You should use GSON
or similar libs for this.
您应该GSON
为此使用或类似的库。
Store to DB
存储到数据库
For example If you use GSON
例如,如果您使用 GSON
Person p = new Person();
p.setname("xyz");
p.setage("18");
Gson gson = new Gson();
String personString = gson.toJson(p);
Now store this personString to DB.
现在将此 personString 存储到 DB。
Read from DB
从数据库读取
Get back this object from database, read string from DB and convert it to object like below
从数据库中取回这个对象,从数据库中读取字符串并将其转换为如下所示的对象
String personStringFromDB = READ_LOGIC_OF_DB;
Gson gson = new Gson();
Person p = gson.fromJson(personStringFromDB, Person.class);
For more information, read GSON - Gson Example
有关更多信息,请阅读GSON - Gson 示例
回答by Android Develeoper
Consider using a jsonstring representation of the Model Object. There are many java libraries like Hymanson, Gson etc., available to help you with serialization/deserialization part.
考虑使用模型对象的json字符串表示。有许多 Java 库,如 Hymanson、Gson 等,可用于帮助您进行序列化/反序列化部分。
Here's a sample code to do this in Hymanson
这是在 Hymanson 中执行此操作的示例代码
//For conversion of Person object(person) to json String:
String personJsonString = new com.fasterxml.Hymanson.databind.ObjectMapper().writeValueAsString(person);
//For conversion of json String back to Person object(person)
Person person = new com.fasterxml.Hymanson.databind.ObjectMapper().readValue(personJsonString, Person.class);
回答by Mark Shen
You can make Model Object serializable. You need to store the serialized object in SQLite. When you need it, you just get that serialized object from SOLite and deserialize it.
您可以使模型对象可序列化。您需要将序列化对象存储在 SQLite 中。当您需要它时,您只需从 SOLite 获取该序列化对象并将其反序列化即可。