1
私のJSON文字列は次のとおりです。AjaxリクエストからJSON配列を解析するGSONを使用し
[{"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
nullポインタはarr1にあります。 jsonの解析で何が間違っていますか?
編集: もう1つの問題は、メソッド内にWrapperクラスがあり、別の問題が別のプロジェクトの依存関係の中で深いことでした。
試したことがありますか?デバッグが役立ちます。 – f1sh
デバッグ時に変数arrが7要素の配列で、変数arr [1]がnullであることがわかります – dannemp
[GSonを使用してJSONに匿名Javaオブジェクト型を変換する]の複製(http://stackoverflow.com/questions/26791752/convert-anonymous-java-object-types-to-json-using-gson)を参照してください。あなたが現在持っているメソッドの 'Wrapper'クラス** out **を動かすだけです。 –