如何使用gson将此对象序列化和反序列化为json:
public class test{
@Expose
public List< Pair<Double,Double> > list;
@Expose
public int alpha;
}
我试过了:
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
String str = gson.toJson(testInstance,test.class);
其中testInstance是类测试的一个实例,但由于
我无法理解谷歌的TypeToken的GSON api的fromJson方法。下面的代码对我来说非常复杂.
Gson gson = new Gson();
ArrayList<ID_Name_Address> al = new ArrayList<ID_Name_Address>();
al = gson.fromJson(json, new TypeToken<List<ID_Name_Address>>(){}.getType());
这里到底发生了什么:new TypeToken<List
在主类中,变量Generic<Parent> generic在main()中传递一个Generic<Parent> generic对象。在序列化过程中,我得到了正确的输出。但是,当反序列化子对象时,丢失了。有人能给我建议吗。
public class GenericSample {
public static void main(String[] args) {
Generic<Parent> generic = new Generic<Parent>();
Child child = new Child(
如何将List<?>转换为java中的列表?
例如,我有这门课
@Data
public class Example {
private List<?> data;
}
我在这个函数中
@PostMapping("/getResult")
@ResponseBody
public Result getResult(@RequestBody String json) {
Gson gson = new Gson();
Example xmpl = gson.fromJson(json, Example.class);
我正在使用GSON库并调用fromJson()方法:
我的旧代码:
String s = new GsonBuilder().create().fromJson(responseString,myClass[].class);
运行正常,但是我将集合从一个数组移动到一个ArrayList,并且我不知道用什么语法将类型传递给这个方法。如果我理解正确的话,现有代码将类型(一个myClass对象数组)传递给方法,然后从JSON响应中创建该方法。
但我已经尝试了我能想到的所有语法组合,但我对如何执行我认为应该是这样的语法组合感到困惑:
String s = new GsonBuilder().crea
我想在gson TypeToken中使用泛型类型,如下所示: public static <T> T execute(String s) throws SecurityException {
return new Gson().fromJson(s, new TypeToken<T>(){}.getType());
}
public static void main(String[] args) {
String s = "[{\"username\": \"abc\", \"password\"
我看到了许多其他类似的问题,但我认为,除了这些问题之外,还存在一个抽象层次,这一点决定了这一点。也就是说,我有一个带有静态泛型包装方法的实用工具类,用于反序列化泛型类型的对象(构建时未知):
public final class Utils {
public static final Gson sGson = new Gson();
public static synchronized <T> T fromJson(String doc) {
return sGson.fromJson(doc, new TypeToken<T>(){
因此,我计划使用一个类来进行简单的JSON序列化。
public class Thing {
private int field1;
private String some_other_field;
private List<SubType> subs;
private list<AnotherType> another;
public String toJson() {
Gson g = new Gson();
g.toJson(this);
}
}
因此,文档显示,如果您想序列化泛型类型,则需要指定一个TypeToken:
来自页面:
// public final class Gson {
// ...
// public <T> T fromJson(JsonElement json,
// Class<T> classOfT)
// throws JsonSyntaxException {
// ...
在上面的代码片段中,除了Class<T>之外,我什么都能理解。我假设它是与以下内容相同的C#:
public sealed class G
class Result {
private List orders;// Holds objects of class Object only.
private Number a;
private Number b;
}
class Order {
private Number oid;
private Number status;
}
public class TestClass {
public static void main(String... args){
String testString = "{\"orders\":[{
我有一个名为WebApiReturn的类,它是作为Json发送给我的类的表示:
public class WebApiReturn<T> {
@SerializedName("objectReturn")
public T ObjectReturn;
@SerializedName("hasError")
public boolean HasError;
@SerializedName("errorMessage")
public String ErrorMessage;
@S
我想使用GSON解析一个JSON对象。一切似乎都很正常,但当我试图解析一个更“复杂”的对象时,我得到了一个反序列化错误。我试图解析的对象包含一些原语、一个堆栈和一个向量集合。
有没有可能是堆栈\向量导致了这个问题?我能不能克服这个?
错误:
Exception in thread "AWT-EventQueue-0" com.google.gson.JsonParseException: The JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@4e76fba0 failed t
我正在使用Gson,它能够做一些我没有预料到的事情。请看下面的代码,我在Outer中创建了一个Inner的List,然后将它转换成json字符串。
我不能理解在从Json tho对象返回的路上,Gson如何知道它应该从Inner类创建对象。据我所知,泛型信息不是已编译类的一部分,Json字符串中也没有线索。尽管如此,Gson正在创建一个内部内部列表
有人知道Gson是怎么做到的吗?
public class JsonTest {
public static void main(String[] args){
Inner inner1 = new Inner();
inne
我有一些需要多次使用的代码,所以我想把它放在一个方法中。守则是:
try
{
//Create a list descriptor for GSON to use
Type listType = new TypeToken<ArrayList<MyClass>>(){}.getType();
//Get it out as a list
List<MyClass> myClass = gson.fromJson( jsonString, listType );
}
catch (Exception e)
{
e.pr
我目前正在学习在Android上使用Gson作为Json,而我刚刚遇到了这个问题。假设我们有如下类:
class Command {
public int id = COMMAND_ID_UNSPECIFIED;
}
class CommandSpecific1 extends Command{
public String specialStr;
public CommandSpecific1 () {
id = COMMAND_ID_SPECIAL1;
specialSt
我在stackoverflow上搜索了这里,但仍然找不到解决方案,所以我的问题。
我创建了这个方法来反序列化即将到来的json (必须是泛型的,因为所有调用都在这里传递):
public class GsonUtil {
public static Gson createGsonObject() {
// Formado de data alterado, outro formato não estava convertendo
// Alterado para setar // na saída devido problema com WebSer
我知道以前有人问过这个问题。因为我在java和android方面的新手技能。这个问题我解决不了一个多星期。
我和我的一个朋友开发了一个android项目,因为有几件事情是这样的。
最奇怪的是,它只发生在我从Google商店下载并测试它的时候。不是从本地android工作室安装或调试模式。
这里的问题可能是什么,还是这个完全错误的返回列表?我的朋友相信这段代码的返回是正确的,但是在play商店的安装中,这总是一个错误。
请建议我在哪里继续挖掘?
@Override
public void promiseMethod(JSONObject object) {
if (object != n
我正在设计一个能够反序列化某些文件的类,我想知道这两个选项的含义是什么:
// option 1 - generic class
public class XmlConfigurationManager<T>
{
public T ReadConfigurationAndWriteDefault(string configurationPath, Func<T> defaultConfiguration)
{
...
}
public T Deserialize(string configurationPath)