[英]How to override the 2nd Object JSON with 1st JSON object
我有一种情况需要将第二个JSON对象值覆盖为第一个。
JSON原始:-
{
"products": {
"productsApp15": {
"status": "active",
"attribute_set": "Apparel",
"name": "productsApp16",
"product_type": "product",
"code": "productsApp16"
}
}
}
我的第一个对象:-
{
"productsApp15": {
"attribute_set": "Apparel",
"status": "active",
"name": "productsApp16",
"product_type": "product",
"code": "productsApp16"
}
}
我的第二个对象:-
{
"attribute_set": "Apparel",
"status": "active",
"name": "productsApp16",
"product_type": "product",
"code": "try"
}
如果您看到key的值-> code
将在此处更新。 我想在我的真实或第一个JSON对象中进行此更改,以便将其传递给我的有效负载
我的代码:
FileReader reader = new FileReader(filePath);
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);
JSONObject jsonObject1 = (JSONObject) jsonObject.get("products");
JSONObject jsonObject2 = (JSONObject)jsonObject1.get("productsApp15");
String firstName = (String) jsonObject2.get("code").toString();
System.out.println("The first name is: " + firstName);
jsonObject2.remove("code");
jsonObject2.put("code", "try");
JSONObject jsonObject3 = (JSONObject)jsonObject1.get("productsApp15");
String firstName2 = (String) jsonObject2.get("code").toString();
System.out.println("The first name is: " + jsonObject3);
JSONObject combined = new JSONObject();
combined.put("Object1", jsonObject1);
combined.put("Object2", jsonObject3);
String firstName3 = (String) jsonObject2.get("code").toString();
System.out.println("The first name is: " + combined);
我的主要目标:-我正在读取一个包含JSON的文件,如您所见,我的对象再次位于另一个对象内。
我想更新该值,然后再将其传递给有效负载。
但是如何获取具有更新值的原始JSON结构?
可能吗?
通过针对JSON所需的结构构造Java类,可以实现这一点。
使用JSON阅读器和解析器来处理JSON很有风险。
public class Products{
private List<Product> productsList;
}
public class Product{
private Map<String, ProProps> map = new HashMap<>();
class ProProps{
private String code;
private String name;
...
}
}
这使您可以映射对象和值。
通过键获取所需产品的价值,并替换所需的道具。
尽管进行了Java-Json的转换,但是在开发时可能会发生许多扩展。
您可以使用此示例进行转换并执行所需的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.