如何在Java中修改JSON对象内的值
我有一个JSON对象,看起来像这样
{
"result":{
"issue_date":"20-02-2011",
"father/husband":"Chopra",
"name":"Variyar",
"img":"/9j/4AAQSkZJRgABAQAABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKS",
"blood_group":"",
"dob":"11-03-1981",
"validity":{
"non-transport":"24-03-2010 to 23-02-2030",
"transport":""
},
"cov_details":[
{
"issue_date":"UNIT OFFICE,TRICHY",
"cov":"NCWG"
}
],
"dl_number":"TN0290000784",
"address":"PERIYA COLONY KO PAVAZHANGUDI VIRUDHACHALAM TK"
},
"request_id":"a2642ae9-2f10-4e9a-9f7e-c3ee1a9a2dbe",
"status-code":"101"
}
我想使用java编辑“img”中的值,它位于“result”中
obj.remove("img");
obj.put("img","N/A");
但它没有起作用。我的预期输出是Img标签应该是这样的
"img":"N/A",
有没有关于如何实现这一目标的建议
# 1 楼答案
我建议使用字符串替换“img”对象,如下所示(无论“img”值或长度如何):
首先以字符串形式获取“img”对象值:
输出将是:
“img”:“/9j/4AAQSkZJRgABAQAABAAD/2WBDAAYBQYBYBAYGBQYBYCHAKJCHQODWQFXQYGBCHKYGYKHHHHHHHKHKHKHKHKHKHKHKHKHKHKHKHKZJRKHBYYYKSOPGR8TMC0OMCUOKS”
然后仅提取“img”值:
输出将是:
/9j/4AAQSkZJRgABAQAABAAD/2WBDAYEBQYFBAYGBQYHBWICHAKCGKJCHQODWQFXQYGBCUFHYAHSUFFGHSJHBYWICWGIYNKSOPGR8TMC0OMCUKS
将原始Json转换为字符串:
将“img”替换为“不适用”:
转换回JSONObject:
就这样
完整代码:
# 2 楼答案
试试这样的。下面是删除或更新数据的两个选项。使用com。fasterxml。杰克逊
# 3 楼答案
# 4 楼答案
您可以使用任何流行的Json序列化库将Java对象转换为Json,反之亦然:
在Jackson的例子中,Java中的对象看起来像这样:
然后,可以通过运行以下代码将Json序列化为Java对象:
其中
json
变量引用Json数据。拥有Java对象后,您可以简单地使用getter和setter来根据需要调整对象{cd2}要编辑属性,请执行以下操作:
如果您希望将Java对象转换回Json,可以执行以下操作:
Java类的源代码:http://www.jsonschema2pojo.org/
# 5 楼答案
使用简单组织的解决方案。json库(*不使用POJO类)
输出: