2017-05-08 15 views
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クラスがあり、別の問題が別のプロジェクトの依存関係の中で深いことでした。

+1

試したことがありますか?デバッグが役立ちます。 – f1sh

+0

デバッグ時に変数arrが7要素の配列で、変数arr [1]がnullであることがわかります – dannemp

+0

[GSonを使用してJSONに匿名Javaオブジェクト型を変換する]の複製(http://stackoverflow.com/questions/26791752/convert-anonymous-java-object-types-to-json-using-gson)を参照してください。あなたが現在持っているメソッドの 'Wrapper'クラス** out **を動かすだけです。 –

答えて

0

私はそれを試しました。あなたのコードは少しエラーがあります。新しいJavaクラスWrapperを作成する必要があります。このメソッドの内部クラスではありません。 enter image description here

関連する問題