1
我的JSON字符串是:使用GSON解析从Ajax请求一个JSON阵列
[{"name":"51","value":"0"},{"name":"52","value":"0"},{"name":"53","value":"5"},{"name":"54","value":"1"},{"name":"106","value":"0"},{"name":"107","value":"0"},{"name":"108","value":"3"}]
我试图做的事:
Gson gson = new Gson();
class Wrapper{
String name;
String value;
}
Wrapper[] arr = gson.fromJson(request.getParameter("data"), Wrapper[].class);
然后:
for (Wrapper arr1 : arr) {
if(Long.parseLong(arr1.value)!=0){
listeProduits.add(ServiceMetier.getProduitById(Long.parseLong(arr1.name)));
listeQuantites.add(Long.parseLong(arr1.value));
}
}
但我总是得到:
May 08, 2017 11:32:06 AM org.apache.catalina.core.StandardWrapperValve
invoke
SEVERE: Servlet.service() for servlet [ActionServlet] in context with path
[/Gustatif_Web] threw exception
java.lang.NullPointerException
空指针在arr1上。 我在做我的JSON解析错误?
编辑: 一个问题是在方法内部有Wrapper类,另一个问题在另一个项目的依赖关系中更深。
你试过调试吗?调试有帮助。 – f1sh
调试时,我看到变量arr是一个由7个元素组成的数组,但变量arr [1]为空 – dannemp
[将匿名Java对象类型转换为使用GSon的JSON]的副本(http://stackoverflow.com/questions/26791752/convert-anonymous-java-object-types-to-json-using-gson)。只需将您当前所用方法的'Wrapper'类移出**即可。 –