
cn.zhxu.data.gson.GsonMap Maven / Gradle / Ivy
package cn.zhxu.data.gson;
import com.google.gson.JsonObject;
import java.util.AbstractMap;
import java.util.AbstractSet;
import java.util.Iterator;
import java.util.Set;
/**
* @author Troy.Zhou @ 2022/5/27
* @since v1.5.0
*/
public class GsonMap extends AbstractMap {
private final JsonObject json;
public GsonMap(JsonObject json) {
this.json = json;
}
transient Set> entrySet;
@Override
public Set> entrySet() {
if (entrySet == null) {
entrySet = new AbstractSet>() {
@Override
public Iterator> iterator() {
Iterator keyIt = json.keySet().iterator();
return new Iterator>() {
@Override
public boolean hasNext() {
return keyIt.hasNext();
}
@Override
public Entry next() {
String key = keyIt.next();
Object value = GsonDataConvertor.toPlainObject(json.get(key));
return new SimpleEntry<>(key, value);
}
};
}
@Override
public int size() {
return json.size();
}
};
}
return entrySet;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy