gpt4 book ai didi

Java JSON POST 格式不正确

转载 作者:行者123 更新时间:2023-12-02 01:52:38 25 4
gpt4 key购买 nike

我正在尝试创建一个方法,该方法将根据给定的 url 和 JSONArray 发送 POST 请求。该代码摘录如下:

        URL url = new URL("https://jsonplaceholder.typicode.com/posts");
JSONObject obj = new JSONObject();
obj.put("id", -12);
obj.put("title", "titlevalue");
obj.put("body", "bodyvalue");
JSONArray arr = new JSONArray("[" + obj + "]");

con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("charset", "utf-8");

System.out.println(arr.toString());

OutputStreamWriter wr= new OutputStreamWriter(con.getOutputStream(), "UTF-8");
wr.write(arr.toString());
wr.flush();
wr.close();

if (con.getResponseCode() != 201) // make sure request is successful
throw new Exception("Error code " + con.getResponseCode());

String str = new Scanner(con.getInputStream(), "UTF-8").useDelimiter("\\Z").next();
System.out.println(str);

第一个打印语句显示我的输入格式正确

[{
"id": -12,
"title": "titlevalue",
"body": "bodyvalue"
}]

这就是我想要的,但是在写入输出流后,第二个打印语句向我显示它根本没有正确格式化为 JSON,整个过程中都有奇怪的转义字符,并且它没有获取键/值对。

{
"[{\"id\":-12,\"title\":\"titlevalue\",\"body\":\"bodyvalue\"}]": "",
"id": 101
}

我在 POST 过程中做错了什么吗?

最佳答案

尝试以下:

JSONObject obj = new JSONObject();
obj.put("id", -12);
obj.put("title", "titlevalue");
obj.put("body", "bodyvalue");
JSONArray arr = new JSONArray();
arr.put(obj);

解释:正如 Dave 所解释的,将字符串用“[”和“]”包围,您引入了转义字符。相反,只需将创建的对象放入数组中即可。更好的方法是使用 GSON 或 JACKSON 进行解析,您可以在互联网上轻松找到教程。

关于Java JSON POST 格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52752124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com