我正在使用Google GSON将Java对象转换为JSON。
目前,我具有以下结构:
"Step": {
"start_name": "Start",
"end_name": "End",
"data": {
"duration": {
"value": 292,
"text": "4 min."
},
"distance": {
"value": 1009.0,
"text": "1 km"
},
"location": {
"lat": 59.0000,
"lng": 9.0000,
"alt": 0.0
}
}
}
当前,Duration
对象在Data
对象内部。我想跳过Data
对象并将对象移动Duration
到Step
对象,如下所示:
"Step": {
"start_name": "Start",
"end_name": "End",
"duration": {
"value": 292,
"text": "4 min."
},
"distance": {
"value": 1009.0,
"text": "1 km"
},
"location": {
"lat": 59.0000,
"lng": 9.0000,
"alt": 0.0
}
}
如何使用GSON做到这一点?
编辑:我试图使用TypeAdapter来修改Step.class,但是在写入方法中,我无法将我的工时对象添加到JsonWriter中。
您可以通过编写代码,然后为注册一个自定义的序列化器Step
,并确保在其中使用Duration
而不是的方式来执行此操作Data
。
// registering your custom serializer:
GsonBuilder builder = new GsonBuilder ();
builder.registerTypeAdapter (Step.class, new StepSerializer ());
Gson gson = builder.create ();
// now use 'gson' to do all the work
下面是自定义序列化程序的代码,我在脑子里写下了代码。它会错过异常处理,并且可能无法编译,并且会降低创建Gson
重复实例的速度。但它代表了 这样的事情
,你会想做的事:
class StepSerializer implements JsonSerializer<Step>
{
public JsonElement serialize (Step src,
Type typeOfSrc,
JsonSerializationContext context)
{
Gson gson = new Gson ();
/* Whenever Step is serialized,
serialize the contained Data correctly. */
JsonObject step = new JsonObject ();
step.add ("start_name", gson.toJsonTree (src.start_name);
step.add ("end_name", gson.toJsonTree (src.end_name);
/* Notice how I'm digging 2 levels deep into 'data.' but adding
JSON elements 1 level deep into 'step' itself. */
step.add ("duration", gson.toJsonTree (src.data.duration);
step.add ("distance", gson.toJsonTree (src.data.distance);
step.add ("location", gson.toJsonTree (src.data.location);
return step;
}
}
我使用gson在Java对象上映射JSON。我有一个类似于下面示例的JSON 假设我只想映射选定的字段,比如博客部分的标题和描述。为此,我创建了java类来处理这个请求,并创建了Blog对象,它有两个字段,用JSON表示字段,我想映射它们 要映射JSON的对象: 我的问题是:我能这样做吗?没有创建JSON中的所有其他字段,也没有匹配“节点”,我不需要像meta这样的内容。?或者我需要为我正在获取的
我的改装方法
我在Jolt转换中有一个JSON对象数组的数组,但我需要将对象向上移动到顶层数组。我尝试添加另一个Shift,但这只是将对象移到相同的位置,或者将两个子对象的值放入一个值数组中。
//使用startActivity(intent)也不起作用//无论我做什么,应用程序都会崩溃
问题内容: 因此,我使用GSON来从API解析JSON,并被困在如何解析数据中的动态字段上。 这是查询返回的JSON数据的示例: 我当前处理单个静态值的方式是使用一个类: 然后我可以简单地使用GSON来解析它: 我知道这对子数据有效,因为我可以查询并获得单个条目并非常轻松地解析该条目,但是为数组中每个值给出的随机整数值呢?(即30655845和2868874) 有什么帮助吗? 问题答案: 根据GS
父类: 子电话对象(第一级): 我正在尝试获取person对象,其phone对象类型为home,其编号应包含“888”。 从上面的流代码,我能够得到手机对象。但是如何在相同的函数中获得该电话对象的父对象呢?。 我尝试了这种方式,我得到null不匹配的对象。