Java 比较两个JSON以确保第一个JSON的键存在于另一个JSON中

Java 比较两个JSON以确保第一个JSON的键存在于另一个JSON中,java,json,templates,sms,Java,Json,Templates,Sms,我写这封信是想得到一些关于我所面临问题的线索 我实际上正在编写一个服务,它将使用一些第三方API发送文本消息。我有很多需要发送的消息模板(静态文本和动态内容的占位符),这个服务将从我的应用程序中的多个模块调用 我计划将消息模板存储在数据库中,一旦任何模块需要发送文本消息,它将调用我的消息服务并传递数据,以填充特定模板的占位符 我正在数据库中保存模板,如下所示: { "data": { "message": "[GREETING], this is the test mes

我写这封信是想得到一些关于我所面临问题的线索

我实际上正在编写一个服务,它将使用一些第三方API发送文本消息。我有很多需要发送的消息模板(静态文本和动态内容的占位符),这个服务将从我的应用程序中的多个模块调用

我计划将消息模板存储在数据库中,一旦任何模块需要发送文本消息,它将调用我的消息服务并传递数据,以填充特定模板的占位符

我正在数据库中保存模板,如下所示:

{
    "data": {
        "message": "[GREETING], this is the test message sent on [DATE].",
        "constant1": "",
        "constant2": ""
    },
    "metadata": {
        "data": {
            "message": {
                "[GREETING]": "required",
                "[DATE]": "required"
            },
            "constant1": "required",
            "constant2": "required",
            "constant3": "optional"
        }
    }
}
数据是我最终希望传递消息api的实际对象,元数据基本上是完成数据对象所需/可选的常量和变量

我从调用我的服务的其他模块接收的数据是:

{
    "[GREETING]": "Dear John Doe",
    "[DATE]": "28 February",
    "data": {
        "constant1": 982042,
        "constant2": [64238, 64239]
    }
}
所以问题是,我必须验证在模板元数据中设置的所有必需常量都应该存在于调用服务时接收的json中。在这里,我有点困惑,我如何将数据的键与模板进行比较,以确保模板的所有必需数据都是由刚刚调用我的服务的模块发送的

有人能给我一个线索,如果它在java中是可能的吗

p、 s:我只是想得到一些指导或线索

谢谢

更新:如果有人对实现我在上述场景中想要实现的目标有更好、简洁的建议,请分享,我将非常感谢


Update2:澄清我真正想要实现的目标:我有一个JSON模板,其中有一个元数据字段,告诉我填充这个特定模板需要哪些参数。所以,在收到对我的服务的调用后,我必须首先检查API请求体中是否存在所需的参数(在模板的元数据中设置)。希望现在能满足我的要求

首先解析JSON。比较原始JSON文本将非常困难,因为不同的文本可能仍然是相同的值,例如,数据可能是
{“\u005BGREETING\u005D”:“亲爱的John Doe”,“u005BDATE\u005D”:“2月28日”,“数据”:{“constant1”:982042,“constant2”:[6423864239]}
。不同的原始文本,但相同的JSON数据。感谢您的回复。我对你上面所说的有点困惑。有没有一种方法我可以比较?一种方法?当然但是,当使用第三方库解析非常容易时,为什么还要解决所有这些难题呢?您真的关心冒号后面是否有空格,或者
[
是否作为
\u005B
[
,或者它真的是您想要比较的数据吗?实际上,我想要实现的是,我有一个JSON模板,其中有一个元数据字段,告诉我填充这个特定模板需要哪些参数。因此,在接到我的服务呼叫后,我必须首先检查所需的参数(在模板的元数据中设置)应该在API请求体中。希望现在可以清除我的需求。是的,对于这一点,您也应该简单地解析JSON,例如,请参阅