You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduced a JsonObject field that will preserve the current JSON object. This field is set in BoxJSONObject.update. BoxJSONObject.toString is overriden to convert this object to a string literal.
Closesbox#52.
I do not think that toString method should return Json object representation with all the changes. This method is used mostly for debugging/logging so it should be fast . What is required here does not look like it fits into toString specification.
All Info objects have to methods:
com.box.sdk.BoxJSONObject#getPendingChanges - that returns String representation of the Json with all the pending changes
com.box.sdk.BoxJSONObject#getPendingChangesAsJsonObject - that returns JsonObject with all the pending changes
However those will return null if there are no pending changes.
If we create a new method to return Json representation of current state of the Info object (as String or JsonObject) to cache it what would be the use case?
Some application gets the response from SDK, modifies it, gets Json and cache it but what then? If it would get the object from cache and create the Info object from it the information on pending changes are lost.
The best approach is to use com.box.sdk.BoxJSONObject#getJson which is exposed to all Info objects. If you use this Json representation to cache response and the use it to create Info object you are not loosing any information. But you have any pending changes you have to sent them via SDK.
Calling
toString()
on an Info object should return the full JSON representation of the object, including any changes made locally.This feature makes it easier for applications to cache and store data returned from the API.
The text was updated successfully, but these errors were encountered: