繁体   English   中英

如何使用第一个JSON对象覆盖第二个对象JSON

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM