最近在工作中有个小需求:给一段json字符串形如下
{
"stream": "false",
"messeage": [
{
"role": "user",
"content": "this is question"
},
{
"role": "assitant",
"content": "this is anser"
},
{
"role": "user",
"content": "需要添加的内容"
}
],
"model": "kimi"
}
我需要在字符串的最后一个content中添加我的内容。
尽管这是一段字符串但是实际上还是符合json规则的,因此可以通过解析转换成json对象进行操作。考虑到仅仅只是一个数据的处理过程,我决定写一个工具类jsutils用于读取这个字符串并且将想加入的内容加入。
对于json数据的处理有许多的方法这里我用的是阿里的fastJson
public class JSUTIL {
static String path = "your path";
public static JSONObject parse(String json) throws IOException {
//定义一个输入流
BufferedReader br = new BufferedReader(new FileReader(path));
//读取文件内容
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine())!=null){
sb.append(line);
}
br.close();
String jsonStr = sb.toString();
//得到json对象
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
//这里由于是需要在字符数组中加入内容因此需要得到数组对象
JSONArray jsonArray = jsonObject.getJSONArray("message");
//得到数组中第三个对象并且是赋值
jsonArray.getJSONObject(2).put("content",json);
return jsonObject;
}
}
这样就成功在指定地方赋值