3

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

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

我怎样才能做到这一点?

4

5 回答 5

5

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

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

String url = "editTest.jsp?details=" + URLEncoder.encode(otherParameter + jsonString, "UTF-8");
于 2014-10-24T06:18:27.867 回答
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作为参数传递。

于 2014-10-24T05:18:58.743 回答
0

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

于 2014-10-24T05:10:46.327 回答
0

我们可以借助Gson

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

注意:Gson 需要 jar 文件

于 2014-10-24T05:28:26.863 回答
0

我们可以使用 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("");
    }
于 2019-12-12T13:54:37.530 回答