在杰克逊的数据绑定的文档表明,杰克逊支持deserialising"所有支持类型的数组",但我想不通这个确切的语法.
对于单个对象,我会这样做:
//json input
{
"id" : "junk",
"stuff" : "things"
}
//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);
Run Code Online (Sandbox Code Playgroud)
现在对于一个数组我想这样做:
//json input
[{
"id" : "junk",
"stuff" : "things"
},
{
"id" : "spam",
"stuff" : "eggs"
}]
//Java
List<MyClass> entries = ?
Run Code Online (Sandbox Code Playgroud)
有人知道是否有一个神奇的缺失命令?如果没有那么解决方案是什么?
使用Gson库,如何将JSON字符串转换ArrayList为自定义类JsonLog?基本上,JsonLog是由我的Android应用程序制作的不同类型的日志实现的接口 - 短信日志,呼叫日志,数据日志 - 这ArrayList是所有这些日志的集合.我在第6行遇到错误.
public static void log(File destination, JsonLog log) {
Collection<JsonLog> logs = null;
if (destination.exists()) {
Gson gson = new Gson();
BufferedReader br = new BufferedReader(new FileReader(destination));
logs = gson.fromJson(br, ArrayList<JsonLog>.class); // line 6
// logs.add(log);
// serialize "logs" again
}
}
Run Code Online (Sandbox Code Playgroud)
似乎编译器不理解我指的是打字ArrayList.我该怎么办?
我正在下载一个JSON字符串并将其转换为JSONArray.我把它放到listview中,需要以后能够从列表视图中删除,因为JSONArray没有.remove方法(感谢奥巴马),我试图将它转换为arraylist.
这是我的JSON(array.toString()):
[{"thumb_url":"tb-1370913834.jpg","event_id":"15","count":"44","event_tagline":"this is a tagline","event_name":"5th birthday","event_end":"1370919600","event_start":"1370876400"}]
Run Code Online (Sandbox Code Playgroud)
我需要将它放入一个数组中,并能够通过各自的键调用字符串.感谢任何帮助!
我的java servlet以这种方式返回一个json字符串:
Gson gson = new Gson();
String lista = gson.toJson(utenti);
System.out.println(lista);
request.setAttribute("lista", lista);
request.getRequestDispatcher("GestioneUtenti.jsp").forward(request, response);
Run Code Online (Sandbox Code Playgroud)
现在,在jsp页面中我想再次使用我的arrayList.我试着这样做:
<%
String lista = (String)request.getAttribute("lista");
Gson gson = new Gson();
ArrayList<Utente> users = gson.fromJson(lista, TypeToken.get(new ArrayList<Utente>().getClass()).getType());
out.println(users.get(0).getUsername());
%>
Run Code Online (Sandbox Code Playgroud)
我有这个例外:
java.lang.ClassCastException: com.google.gson.internal.StringMap cannot be cast to classi.Utente
Run Code Online (Sandbox Code Playgroud)
能帮你吗?如果我想念一些细节告诉我!谢谢 :-)