我有一个整数值,比如int id
,其值由getter函数得到运行时。
我想将此id
的值替换为。"VALUE"
,如下所示
{
"id":"VALUE",
"name": "Name updated",
"description": "description Updated",
"active": false
}
如果id
为String
,
String str = "myJson.json";
str.replace("\"VALUE\"", "\"id\"");
如何在上面的函数中使用int id,格式为“\”id \“”? 欢迎任何其他解决方案。
编辑:
String str = "myJson.json";
是将json内容转换为String的错误方法。
答案 0 :(得分:0)
您可以使用简单的public static void main(String[] args) {
String value = "{\"id\":\"VALUE\",\"name\": \"Name updated\",\"description\": \"description Updated\",\"active\": false}";
int id = 5;
value = value.replaceAll("\"VALUE\"", String.valueOf(id));
System.out.println(value);
}
替换来执行此操作,例如:
{{1}}
答案 1 :(得分:0)
使用org.json库可以将其分配给JSON对象并使用put方法:
JSONObject jsonObject= new JSONObject(YOUR_STRING);
String[] names = JSONObject.getNames(jsonObject);
JSONArray jsonArray = jsonObject.toJSONArray(new JSONArray(names));
JSONObject id= jsonArray.getJSONObject(0).getJSONObject("id");
person.put("VALUE", id);
正则表达式替换可能会通过替换其他匹配的字符串来创建一些问题。
答案 2 :(得分:0)
我按照以下方式做了。 要替换Json文件的内容,需要将内容转换为String。我在以下功能的帮助下做到了这一点。
public static String loadJson(String jsonFileName) throws IOException {
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(jsonFileName);
return IOUtils.toString(stream);
}
然后声明一个String变量
String editedJson = loadJson(TEST_SET + "myJson.json");
editedJson.replace("VALUE", "" + id);