diff --git a/lib/json.php b/lib/json.php index dfc0a7b894..4eab4fce9f 100644 --- a/lib/json.php +++ b/lib/json.php @@ -81,6 +81,15 @@ class OC_JSON{ self::encodedPrint($data); } + /** + * Convert OC_L10N_String to string, for use in json encodings + */ + protected static function to_string(&$value){ + if ($value instanceof OC_L10N_String) { + $value = (string)$value; + } + } + /** * Encode and print $data in json format */ @@ -89,6 +98,7 @@ class OC_JSON{ if($setContentType){ self::setContentTypeHeader(); } + array_walk_recursive($data, array('OC_JSON', 'to_string')); echo json_encode($data); } }