从JSON创建的Java对象,使用新的JSON更新同一对象

时间:2018-10-01 23:04:01

标签: java json gson

我有一个无法控制的服务器。我只是消耗,仅此而已。我以JSON的形式从中获得响应。我使用GSON从此JSON实例化Java对象。后来,我从服务器收到另一个响应,该响应表示该对象的一部分需要进行更新。从JSON表示的主要对象到对象树的任何部分,都可以更新任何数量的字段和其他成员对象。

最初,对象进入(不带格式)看起来像这样:

{
    "action": "ephmeral",
    "object1": {
        "id": 1,
        "stuff": [{
                "id": 2,
                "type": "something",
                "where": "there",
                "count": 5
            }, {
                "id" 3,
                "type": "otherthing",
                "where": "here",
                "count": 5
            }
        ],
        "field2": 2,
        "field3": 3,
        "field4": 4,
        "field5": 5,
        ...
        "fieldN": 999,
    }
}

这是一个小的示例,表示对象及其字段中的任何复杂程度。这是主要对象的初始状态。

稍后,与服务器进行通信以较小的方式更新对象(可以更新任意多个字段,这是一个小例子)。

[{
        "action": "update",
        "object1": {
            "id": 1,
            "stuff": [{
                    "id": 2,
                    "count": 10
                }
            ]
        }
    }, {
        "action": "delete",
        "object1": {
            "id": 1,
            "stuff": [{
                    "id": 3
                }
            ]
        }
    }, {
        "action": "update",
        "object2": {
            "id": 5,
            "amount": 123.45
        }
    }
]

这些action标记表示应以某种方式更新对象或其任何字段的特定方式(嗯,已经已更新服务器端)。可能是根据action的值来更新事物,删除事物等。

我的问题是,不熟悉JSON和REST,以及服务器使用的其他一些技术(例如,使用Rails;使用Java),我什至不知道如何搜索看看这种特定的处理方式是否有名称,然后我可以找到一个要集成到我的Java代码中的库。另外,GSON是否可以通过某种方式正确处理此问题?就目前而言,它为我提供了代表第一个动作的新对象,而随后的动作均不影响该对象(我不认为这是Bug或GSON的任何错误)。

此刻,我本人正在解析JSON响应字符串,以获取针对一些小而关键的请求的已知,固定(ish)响应。但这当然不是动态的或灵活的。这是一种自定义的交流风格,还是一种我可以灵活动态地处理的已知风格?

0 个答案:

没有答案