gpt4 book ai didi

android - 以 MS WCF 兼容形式对日期字段进行 gson 序列化

转载 作者:太空狗 更新时间:2023-10-29 15:57:47 25 4
gpt4 key购买 nike

我在 POST 方法中访问 Web 服务。我需要向服务器发送一个 json 序列化对象。在我的 Android 类中,我有一些字符串字段和一个日期字段。这个日期字段像这样序列化:

.... TouchDateTime":"Oct 6, 2010 5:55:29 PM"}"

但为了与网络服务兼容,我需要像这样:

"TouchDateTime":"\/Date(928138800000+0300)\/"

我在这里找到了一篇关于反序列化的有趣文章:http://benjii.me/2010/04/deserializing-json-in-android-using-gson/我想我需要做这样的事情。你能帮帮我吗?

最佳答案

如果有人需要它,我是这样做的。1.新建一个类DateSerializer,放入:

import java.lang.reflect.Type;
import java.util.Date;
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;

public class DateSerializer implements JsonSerializer<Object>
{
public JsonElement serialize(Date date, Type typeOfT, JsonSerializationContext context)
{
return new JsonPrimitive("/Date(" + date.getTime() + ")/");
}

public JsonElement serialize(Object arg0, Type arg1,
JsonSerializationContext arg2) {

Date date = (Date) arg0;
return new JsonPrimitive("/Date(" + date.getTime() + ")/");
}
}

下面是我如何使用它:

   public static JSONObject Object(Object o){
try {
GsonBuilder gsonb = new GsonBuilder();
DateSerializer ds = new DateSerializer();
gsonb.registerTypeAdapter(Date.class, ds);
Gson gson = gsonb.create();


return new JSONObject(gson.toJson(o));
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

关于android - 以 MS WCF 兼容形式对日期字段进行 gson 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3874193/

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