String str = "{"id":"4ebd7e4f","start_page_ui_id":"","business_unit":["5b65aced"],"props":{"metadata":"[]","postsPerPage":"20","network_id":"1b375ffd"},"render_engine":"twig"}"
字符串
这里我想将“metadata”:“[]”替换为“metadata”:“[“key”:“value,value1”,“key1”:“value2”]”
为此,我试图取代作为
str =str.replace("\"metadata\":\"[\"", "\"metadata\": \"[{\"key\":\"key\",\"val\":\"value,value1\"},{\"key\":\"key1\",\"val\":\"value2\"}");
型
但是它没有被替换。我不明白为什么??谁能帮我解决这个问题。
我想将另一个字符串“postsPerPage”:“20”替换为“postsPerPage”:“6”
为此,我尝试了
str = str .replace("\"postsPerPage\": \"20\",", "\"postsPerPage\": \"9\",");
型
这里的值也没有改变。
5条答案
按热度按时间qlfbtfca1#
使用JSON第三方库,GSON或Jackson是最流行的。
以GSON为例(仅适用于小样本!对于JSON的大blob,您应该考虑使用流API):
字符串
控制台输出:
型
nle07wnf2#
这是一个相当漫长的过程,我将在这里概述你需要做些什么来制作你的JSON。
库:GSON,Jackson在这里有帮助。你也可以使用在线JSON到POJO转换器来使你的任务更容易。
wfypjpf43#
你必须用
字符串
不
型
和
型
应
型
e4yzc0pl4#
String对象是不可变的,所以每当我们在现有的String对象中执行任何操作时,都会创建一个新的String对象。新的Stirng对象不会分配给任何String对象。
所以str = str .replace(“\“postsPerPage":\“20",",“\“postsPerPage":\“9",”);
在上面一行创建的新对象中,它自动符合垃圾收集的条件。
String str2 = str .replace(“\“postsPerPage":\“20",",“\“postsPerPage":\“9",”);
这里创建了新String对象。str 2指向String对象。
现在你可以使用str 2来工作。
dwthyt8l5#
对于那些仍然感兴趣的人,java 21引入了STR模板
字符串
的数据