2013-02-26 179 views
5

मैं JSON में कुछ 'क्षेत्रों' और 'सूचियों' भेज रहा हूँ के रूप में नीचे MVC नियंत्रक वसंत के:JSON अनुरोध में सूची भेजने का

@RequestMapping(value = "/testURL.do", method = RequestMethod.POST) 
public ModelAndView executeTest(ListData listData) { 
     ModelAndView modelAndView = null; 
     JsonResponse jsonResponse = null; 

     modelAndView = executeTransaction(listData); 
     } 

     return modelAndView; 
    } 


ListData.java 

public class ListData{ 
    private String   message; 
    private List<String> **listOfIds** = new ArrayList<String>(); 

//getter/setters 
:

var data = { 
     'message' : 'Text data', 
     '**listOfIds**' : '350234983, 378350950', 

     'synchronizerToken' : formTokenId 

}; 

$.ajax({ 
     url : 'testURL.do', 
     type : 'post', 
     data : data, 
     cache : false, 
     dataType : 'json', 

     success : function (jsonResponse) {}, 

     error : function (error) {} 
}); 

वसंत MVC नियंत्रक में URL हैंडलर इस तरह दिखता है

समस्या सूची OfIds सूची के रूप में वापस नहीं किया जा रहा है। यह एक स्ट्रिंग के रूप में '350,234,983, 378,350,950' दिया जाता है

किसी को भी अगर कुछ भी यहाँ गलत है या वहाँ JSON उत्तर में सूची प्राप्त करने के लिए किसी भी बेहतर तरीका है सुझाव है कि कर सकते हैं?

धन्यवाद, -Fonda

उत्तर

5

listOfIds एक एकल स्ट्रिंग के बजाय तार की एक सरणी बनाओ।

'listOfIds' : ['350234983', '378350950'], 
+0

मुझे लगता है कि शुरू में कोशिश की, लेकिन मैं इस मिल: जावा .lang.NumberFormatException: आईएनपी के लिए ut स्ट्रिंग: "" java.lang.NumberFormatException.forInputString (NumberFormatException.java:48) पर \t – McQueen

+0

वस्तु परिभाषा क्योंकि यह है जावा में सही नहीं है: निजी सूची ** listOfIds ** = नए ArrayList (); – McQueen

0

1.)

Add gson jar 

import com.google.gson.Gson;//import 

Gson gson = new Gson();//create instance 

gson.toJson(ListData);//convert it to json 

2.)

नियंत्रक से नीचे सेम वापसी jsonView को परिभाषित करें।

<bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView"/> 

नियंत्रक

import org.springframework.ui.ModelMap; 

@RequestMapping(value = "/testURL.do", method = RequestMethod.POST) 
public String executeTest(ModelMap model, ListData listData) { 
    ModelAndView modelAndView = null; 
    JsonResponse jsonResponse = null; 
    modelAndView = executeTransaction(listData); 
    model.addAttribute("paramName", modelAndView); 
    } 

    return "jsonView"; 
} 

ajax में बदलें

$.ajax({ 
    url : 'testURL.do', 
    type : 'post', 
    data : data, 
    cache : false, 
    dataType : 'json', 

    success : function (jsonResponse) { 
     var jsonValue = $.parseJSON(jsonResponse.paramName); 
    }, 

    error : function (error) {} 
}); 

viewsResolver MVC-servlet.xml में config

<bean class="org.springframework.web.servlet.view.XmlViewResolver"> 
    <property name="location"> 
     <value>/path/views.xml</value> 
    </property> 
</bean> 
+0

धन्यवाद लेकिन हम जीसन का उपयोग नहीं कर रहे हैं। हम जैक्सन – McQueen

+0

प्वाइंट नंबर 2 का उपयोग कर रहे हैं जीएससन से संबंधित नहीं है, यह वसंत – nav0611

+0

ठीक है धन्यवाद इसलिए xml फ़ाइल में इस दृश्य को परिभाषित करने से स्वचालित मैपिंग का ख्याल रखा जाएगा? या मुझे नियंत्रक में अतिरिक्त प्रसंस्करण करने की आवश्यकता है? – McQueen