如何在url中将json数据作为请求参数发送到java中

时间:2014-10-24 05:06:26

标签: java json http-request-parameters

我想在url中发送json数据,如下所示。

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

我该怎么做?

5 个答案:

答案 0 :(得分:3)

URL编码您的详细信息参数:

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

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

答案 1 :(得分:2)

您需要将JSON object转换为字符串

      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

现在,您可以将此jsonText作为参数传递。

答案 2 :(得分:0)

Json2可以提供帮助。 JSON.stringify(obj)

答案 3 :(得分:0)

我们可以使用Gson

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

注意:Gson需要jar文件

答案 4 :(得分:0)

我们可以使用GSON将对象转换为JSON对象,然后解析JSON对象并将其转换为查询参数字符串。该对象只能包含基本对象,例如int,float,string,enum等。否则,您需要添加额外的逻辑来处理这些情况。

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("");
    }