Java, как анализировать данные JSON AJAX как JSONArray? (с использованием карты @requestparam, а не VO) - PullRequest
0 голосов
/ 27 ноября 2018

java, как проанализировать данные json ajax как jsonArray?(используя @requestparam map, а не VO)

мой код js ajax

$.ajax({
        type : "POST"
        ,url : "/test"
        ,dataType : "json"
        ,data: {
            "a": 123
            , "b": "asdf"
            , "c": "Y"
            , "d": "Y"
            , "test": new Array({"num":1, "use":"Y"},{"num":2, "use":"N"},{"num":3, "use":"Y"})
        }
    }).done(function(data){

    }).fail(function(){

    });

я сделал ajax-данные с помощью stringify ().но не анализировал.

мой код Java

@ResponseBody
@RequestMapping(value="/test", method={RequestMethod.GET, RequestMethod.POST})
public String test(@RequestParam Map<String, Object> param, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception {
    System.out.println(param);
    JSONParser jsonParser = new JSONParser();
    JSONObject jsonObject = (JSONObject)jsonParser.parse(param.toString());
    System.out.println(jsonObject);
    JSONArray jsonArray = (JSONArray)jsonObject.get("test");

    System.out.println(jsonObject.get("b"));
    System.out.println(jsonObject.get("test"));
    System.out.println(jsonArray.size());

    return "";//helloworld.getName()+" Hello World! "+helloworld.getKind(); 
}

, и я сделал,

JSONObject jsonObject = new JSONObject(param);
JSONArray jsonArray = (JSONArray)jsonObject.get("test");

, но не анализировал.

System.out.print (jsonObject)

{a=123, b=asdf, c=Y, d=Y, test[0][num]=1, test[0][use]=Y, test[1][num]=2, test[1][use]=N, test[2][num]=3, test[2][use]=Y}

как я могу проанализировать, ajax json "проверить" данные массива.почему не разбирается ??

1 Ответ

0 голосов
/ 27 ноября 2018

Я решил этот вопрос.

Параметр ajax 'традиционный: true' и данные json, "test": JSON.stringify (new Array (...))

должен отправить jsonв объекте массива используйте опцию 'Traditional: true'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...