gpt4 book ai didi

Java Map> 转换为 String 并返回

转载 作者:行者123 更新时间:2023-12-02 04:08:21 25 4
gpt4 key购买 nike

我有类字段

Map<String, Map<String, Object>> myMap;

我需要为 ORMlite 实现它,我想创建自定义 Persister,但不知道将其转换为字符串并返回的好方法。

我的持久化类:

import com.j256.ormlite.field.FieldType;
import com.j256.ormlite.field.SqlType;
import com.j256.ormlite.field.types.StringType;

import java.sql.SQLException;
import java.util.Map;

public class UserPersister extends StringType {

private static UserPersister INSTANCE;

private UserPersister() {
super(SqlType.STRING, new Class<?>[] {Map.class});
}

public static UserPersister getInstance() {
if (INSTANCE == null)
INSTANCE = new UserPersister();
return INSTANCE;
}

@Override
public Object javaToSqlArg(FieldType fieldType, Object javaObject) throws SQLException {
Map<String, Map<String, Object>> map = (Map<String, Map<String, Object>>) javaObject;
return map != null ? getString(map) : null;
}

@Override
public Object sqlArgToJava(FieldType fieldType, Object sqlArg, int columnPos) throws SQLException {
return sqlArg != null ? getFromString((String) sqlArg) : null;
}

private String getString(Map<String, Map<String, Object>> map) {
//implement
}

private Map<String, Map<String, Object>> getFromString(String json) {
//implement
}

最佳答案

使用

new JSONObject(map);

其他功能您可以从其文档中获得http://www.json.org/javadoc/org/json/JSONObject.html 。但是,这只适用于字符串、字符串映射,不适用于复杂的字符串、对象。

Gson还可以用于序列化任意复杂的对象。

使用方法如下:

Gson gson = new Gson(); 
String json = gson.toJson(myObject);

Gson 会自动将集合转换为 JSON 数组。 Gson可以序列化私有(private)字段并自动忽略 transient 字段

关于Java Map<String, Map<String, Object>> 转换为 String 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34036794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com