2016-06-14 95 views
0

我正在使用angularjs處理Spring MVC項目,我從視圖中傳遞了以下JSON數組{name:"theName", code:"theCode", comment:"theComment", listOfIds:["3", "4"]}如何使用com.fasterxml.jackson.databind.ObjectMapper解析和對象具有數字數組

這是我的控制器接收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"); 
} 

我使用下面的投嘗試,但它說,String can not be converted to ArrayList<String>

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

我千牛流如何獲得其他值是該值listOfIds:["3", "4"]是給我的問題

回答

0

由於您的JSON對象有不同的數據類型(字符串,數組...)倒不如把它映射到一個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); 
    } 
相關問題