public static Object toJSONValue( @Nullable final Object object, final PhotoJSONProcessor photoJSONProcessor) throws JSONException { if (object == null) { return JSONObject.NULL; } if ((object instanceof String) || (object instanceof Boolean) || (object instanceof Double) || (object instanceof Float) || (object instanceof Integer) || (object instanceof Long)) { return object; } if (object instanceof SharePhoto) { if (photoJSONProcessor != null) { return photoJSONProcessor.toJSONObject((SharePhoto) object); } return null; } if (object instanceof ShareOpenGraphObject) { return toJSONObject((ShareOpenGraphObject) object, photoJSONProcessor); } if (object instanceof List) { return toJSONArray((List) object, photoJSONProcessor); } throw new IllegalArgumentException( "Invalid object found for JSON serialization: " +object.toString()); }
private static JSONArray toJSONArray( final List list, final PhotoJSONProcessor photoJSONProcessor) throws JSONException { final JSONArray result = new JSONArray(); for (Object item : list) { result.put(toJSONValue(item, photoJSONProcessor)); } return result; }
public static JSONObject toJSONObjectForWeb( final ShareOpenGraphContent shareOpenGraphContent) throws JSONException { ShareOpenGraphAction action = shareOpenGraphContent.getAction(); return OpenGraphJSONUtility.toJSONObject( action, new OpenGraphJSONUtility.PhotoJSONProcessor() { @Override public JSONObject toJSONObject(SharePhoto photo) { Uri photoUri = photo.getImageUrl(); if (!Utility.isWebUri(photoUri)) { throw new FacebookException("Only web images may be used in OG" + " objects shared via the web dialog"); } JSONObject photoJSONObject = new JSONObject(); try { photoJSONObject.put( NativeProtocol.IMAGE_URL_KEY, photoUri.toString()); } catch (JSONException e) { throw new FacebookException("Unable to attach images", e); } return photoJSONObject; } }); }
final ShareOpenGraphAction action = content.getAction(); final ArrayList<NativeAppCallAttachmentStore.Attachment> attachments = new ArrayList<>(); JSONObject actionJSON = OpenGraphJSONUtility.toJSONObject( action, new OpenGraphJSONUtility.PhotoJSONProcessor() {
@Test public void testToJSONObject() throws IOException, JSONException { final JSONObject actual = OpenGraphJSONUtility.toJSONObject(this.getAction(), null); final JSONObject expected = this.getActionJSONObject(); TestUtils.assertEquals(expected, actual); }
private static JSONObject toJSONObject( final ShareOpenGraphObject object, final PhotoJSONProcessor photoJSONProcessor) throws JSONException { final JSONObject result = new JSONObject(); final Set<String> keys = object.keySet(); for (String key : keys) { result.put(key, toJSONValue(object.get(key), photoJSONProcessor)); } return result; }
/** * Converts an action to a JSONObject. * * NOTE: All images are removed from the JSON representation and must be added to the builder * separately. * * @param action {@link com.facebook.share.model.ShareOpenGraphAction} to be converted. * @return {@link org.json.JSONObject} representing the action. * @throws JSONException */ public static JSONObject toJSONObject( final ShareOpenGraphAction action, final PhotoJSONProcessor photoJSONProcessor) throws JSONException { final JSONObject result = new JSONObject(); final Set<String> keys = action.keySet(); for (String key : keys) { result.put(key, toJSONValue(action.get(key), photoJSONProcessor)); } return result; }
JSONObject stagedObject = (JSONObject) OpenGraphJSONUtility.toJSONValue( openGraphObject, new OpenGraphJSONUtility.PhotoJSONProcessor() {