How to send json data in url as request parameters in java

混江龙づ霸主 提交于 2020-01-09 11:28:30

问题


I want to send json data in url as below .

editTest.jsp?details=374889331-{"aNumber":2}

How can I do this?


回答1:


URL encode your details parameter:

String otherParameter = "374889331-";    
String jsonString = "{\"aNumber\":2}";

String url = "editTest.jsp?details=" + URLEncoder.encode(otherParameter + jsonString, "UTF-8");



回答2:


you need to convert the JSON object to string

      JSONObject obj = new JSONObject();

      obj.put("name","foo");

      StringWriter out = new StringWriter();
      obj.writeJSONString(out);

      String jsonText = out.toString();//JSON object is converted to string

Now, you can pass this jsonText as parameter.




回答3:


Json2 can help. JSON.stringify(obj)




回答4:


We can use the help of Gson

String result =new Gson().toJson("your data");

NB: jar file needed for Gson




回答5:


We can convert the Object to JSON Object using GSON, then parse the JSON object and convert it to query param string. The Object should only contain primitive objects like int, float, string, enum, etc. Otherwise, you need to add extra logic to handle those cases.

public String getQueryParamsFromObject(String baseUrl, Object obj) {
        JsonElement json = new Gson().toJsonTree(obj);
        // Assumption is that all the parameters will be json primitives and there will
        // be no complex objects.
        return baseUrl + json.getAsJsonObject().entrySet().stream()
                .map(entry -> entry.getKey() + "=" + entry.getValue().getAsString())
                .reduce((e1, e2) -> e1 + "&" + e2)
                .map(res -> "?" + res).orElse("");
    }


来源:https://stackoverflow.com/questions/26541801/how-to-send-json-data-in-url-as-request-parameters-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!