我想在url中发送json数据,如下所示。
editTest.jsp?details=374889331-{"aNumber":2}
我该怎么做?
答案 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("");
}