我如何在请求消息中添加新行并作为响应发回

How can i add new line in request message and send back as response

我如何在 json structure.Input JSON 中附加一行由用户作为 html 请求提供,每次我们需要添加日期或任何其他新 JSON 和 return 中的功能作为 html 响应。

示例: 如果我的 json 文件是:{name: abc, age: 12} 那么我的新输出 json 将是 {name: abc, age: 12, date:26/09/2017}

代码:

InputStream inputStream = request.getInputStream();
    String text = IOUtils.toString(inputStream, StandardCharsets.UTF_8.name());
    JsonObject convertedObject = new Gson().fromJson(text, JsonObject.class);
    convertedObject.addProperty("Date", "26/09/2017");


    PrintWriter pw = response.getWriter();
    pw.println(convertedObject.toString());

通过上面的代码,现有的 json 仅在日期显示时被删除:(

您可以读取字符串中的整个 json 并使用任何 JSON 解析库,如 jettison 或 jackson。 我将仅举一个使用 jettison 的例子:

String inp = "{\"key1\": \"value\", \"key2\": {\"key\": \"value\"}}";
JSONObject x = new JSONObject(inp);
System.out.println(x);//the toString method gives the object back
System.out.println(x.get("key2"));//you can get any key's value by passsing its key
//setting date here:
x.putOpt("date", "26/09/2017");
System.out.println(x);//you can return the object by doing a toString() of the JSONObject.

您也可以使用 Jackson 的 ObjectMapper 创建一个 HashMap,或者创建一个您可以将对象映射到的 POJO。 这个想法是将字符串解组为对象,添加一个参数,然后编组回字符串。

正则表达式的另一种选择: 将最后一个 } 替换为 ", date:" + date +"}"

Replace Last Occurrence of a character in a string