我想在 url 中发送 json 数据,如下所示。
editTest.jsp?details=374889331-{"aNumber":2}
我怎样才能做到这一点?
我想在 url 中发送 json 数据,如下所示。
editTest.jsp?details=374889331-{"aNumber":2}
我怎样才能做到这一点?
URL 编码您的详细信息参数:
String otherParameter = "374889331-";
String jsonString = "{\"aNumber\":2}";
String url = "editTest.jsp?details=" + URLEncoder.encode(otherParameter + jsonString, "UTF-8");
您需要将其转换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
作为参数传递。
Json2可以提供帮助。JSON.stringify(obj)
我们可以借助Gson
String result =new Gson().toJson("your data");
注意:Gson 需要 jar 文件
我们可以使用 GSON 将 Object 转换为 JSON Object,然后解析 JSON 对象并将其转换为查询参数字符串。Object 应该只包含原始对象,如 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("");
}