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

时间:2017-09-26 07:53:19

标签: java json request response

如何在json结构中添加一行。输入JSON由用户提供为html请求,每次我们需要在新JSON中添加日期或任何其他功能并返回为html响应。

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

CODE:

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被删除只显示日期:(

2 个答案:

答案 0 :(得分:0)

您可以在字符串中读取整个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。 我们的想法是将字符串解组为对象,添加参数,然后编组回字符串。

答案 1 :(得分:0)

使用正则表达式的另一种选择: 将last}替换为“,date:”+ date +“}”

Replace Last Occurrence of a character in a string