Ben*_*ler 5 java json hashmap gson
我正在尝试将 JSON 字符串转换为 HashMap。这是我的一些代码:
public static void createSimpleAppointment(String json){
try
{
Gson gson = new Gson();
HashMap<String,String> data = new HashMap<String,String>();
data = gson.fromJson(json, data.getClass());
Run Code Online (Sandbox Code Playgroud)
在这些行的最后一行(我设置数据的地方)抛出异常。
JSON 字符串是
{"body": "body", "startDate": "2014-05-30 11:00:00", "endDate": "2014-05-30 12:00:00", "location": "location" ,“主题”:“主题!”}
我得到的例外是
线程“main”中的异常 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI) .java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) 引起:com.google。 gson.JsonSyntaxException:java.lang.IllegalStateException:预期为 BEGIN_OBJECT,但在 com.google.gson.Gson.fromJson(Gson.java:815) 的第 1 列第 3 列处为 STRING,位于 com.google.gson.Gson.fromJson(Gson. java:768) 在 com.google.gson.Gson.fromJson(Gson.java:717) 在 com.google.gson.Gson.fromJson(Gson.java:689) 在 ews.calendar。Calendar.createSimpleAppointment(Calendar.java:70) at ews.main.gateway.Main.main(Main.java:34) ... 5 导致:java.lang.IllegalStateException:预期为 BEGIN_OBJECT 但在第 1 行列是 STRING 3 在 com.google.gson.stream.JsonReader.beginObject(JsonReader.java:374) 在 com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:183) 在 com.google.gson。 internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145) 在 com.google.gson.Gson.fromJson(Gson.java:803) ... 10 更多beginObject(JsonReader.java:374) 在 com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:183) 在 com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory. java:145) 在 com.google.gson.Gson.fromJson(Gson.java:803) ... 10 更多beginObject(JsonReader.java:374) 在 com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:183) 在 com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory. java:145) 在 com.google.gson.Gson.fromJson(Gson.java:803) ... 10 更多
我没有得到您使用 Gson 2.2.4 报告的异常,但您应该开始使用TypeToken
s 来表示泛型类型。
HashMap<String, String> data = gson.fromJson(json, new TypeToken<HashMap<String, String>>() {}.getType());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9100 次 |
最近记录: |