2016-06-14 7 views
0

anglejsを使用してSpring MVCプロジェクトに取り組んでいます。次のJSON配列をビューから渡しています。{name:"theName", code:"theCode", comment:"theComment", listOfIds:["3", "4"]}com.fasterxml.jackson.databind.ObjectMapperを使用して数値の配列を持つオブジェクトを解析してオブジェクトにする方法

これは、私は、次のキャストを使用してみましたが、それは私がKN String can not be converted to ArrayList<String>

ArrayList<String> listIDS = new ArrayList<String>(); 
        listIDS = (ArrayList<String>) dataDTOParsed .get(this); 

と言うJSON

@RequestMapping(value = "/createPerson/", method = RequestMethod.POST) 
public ResponseEntity<Void> createSep(@RequestBody final String DTOJsonObject, 
     UriComponentsBuilder ucBuilder) { 
ObjectMapper mapper = new ObjectMapper(); 
     Map<String, String> dataDTOParsed ; 
     dataDTOParsed = mapper.readValue(DTOJsonObject, HashMap.class); 


    //I tried this but it says that a String can not be converted to ArrayList<String> 
       ArrayList<String> listIDS = new ArrayList<String>(); 
       listIDS = (ArrayList<String>) dataDTOParsed .get("listOfIds"); 
} 

を受け、私のコントローラであり、他の値を取得する方法はこの値です

答えて

0

JSONオブジェクトは異なるデータ型(String、Array ...)のプロパティを持っているので、Map<String, Object>にマップした方が良いでしょう。それに応じてキャストする。

コードサンプル:

@RequestMapping(value = "/createPerson/", method = RequestMethod.POST) 
public ResponseEntity<Void> createSep(@RequestBody final String DTOJsonObject, 
    UriComponentsBuilder ucBuilder) { 
    ObjectMapper mapper = new ObjectMapper(); 
    Map<String, Object> parsedData; 

    parsedData = mapper.readValue(DTOJsonObject, HashMap.class); 

    List<String> listIDS = (ArrayList<String>)parsedData.get("listOfIds"); 

    for(String n : listIDS){ 
     System.out.println(n); 
    } 
関連する問題