annotate sites/all/libraries/ARC2/arc/serializers/ARC2_LegacyJSONSerializer.php @ 11:b0ee71395280

deleted .DS_Store files
author danieleb <danielebarchiesi@me.com>
date Mon, 28 Oct 2013 16:12:13 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2 /*
danielebarchiesi@4 3 homepage: http://arc.semsol.org/
danielebarchiesi@4 4 license: http://arc.semsol.org/license
danielebarchiesi@4 5
danielebarchiesi@4 6 class: ARC2 Legacy JSON Serializer
danielebarchiesi@4 7 author: Benjamin Nowack
danielebarchiesi@4 8 version: 2010-11-16
danielebarchiesi@4 9 */
danielebarchiesi@4 10
danielebarchiesi@4 11 ARC2::inc('Class');
danielebarchiesi@4 12
danielebarchiesi@4 13 class ARC2_LegacyJSONSerializer extends ARC2_Class {
danielebarchiesi@4 14
danielebarchiesi@4 15 function __construct($a, &$caller) {
danielebarchiesi@4 16 parent::__construct($a, $caller);
danielebarchiesi@4 17 }
danielebarchiesi@4 18
danielebarchiesi@4 19 function __init() {
danielebarchiesi@4 20 parent::__init();
danielebarchiesi@4 21 $this->content_header = 'application/json';
danielebarchiesi@4 22 }
danielebarchiesi@4 23
danielebarchiesi@4 24 /* */
danielebarchiesi@4 25
danielebarchiesi@4 26 function getSerializedArray($struct, $ind = '') {
danielebarchiesi@4 27 $n = "\n";
danielebarchiesi@4 28 if (function_exists('json_encode')) return str_replace('","', '",' . $n . '"', str_replace("\/","/",json_encode($struct)));
danielebarchiesi@4 29 $r = '';
danielebarchiesi@4 30 $from = array("\\", "\r", "\t", "\n", '"', "\b", "\f");
danielebarchiesi@4 31 $to = array('\\\\', '\r', '\t', '\n', '\"', '\b', '\f');
danielebarchiesi@4 32 $is_flat = $this->isAssociativeArray($struct) ? 0 : 1;
danielebarchiesi@4 33 foreach ($struct as $k => $v) {
danielebarchiesi@4 34 $r .= $r ? ',' . $n . $ind . $ind : $ind . $ind;
danielebarchiesi@4 35 $r .= $is_flat ? '' : '"' . $k . '": ';
danielebarchiesi@4 36 $r .= is_array($v) ? $this->getSerializedArray($v, $ind . ' ') : '"' . str_replace($from, $to, $v) . '"';
danielebarchiesi@4 37 }
danielebarchiesi@4 38 return $is_flat ? $ind . '[' . $n . $r . $n . $ind . ']' : $ind . '{' . $n . $r . $n . $ind . '}';
danielebarchiesi@4 39 }
danielebarchiesi@4 40
danielebarchiesi@4 41 /* */
danielebarchiesi@4 42
danielebarchiesi@4 43 function isAssociativeArray($v) {
danielebarchiesi@4 44 foreach (array_keys($v) as $k => $val) {
danielebarchiesi@4 45 if ($k !== $val) return 1;
danielebarchiesi@4 46 }
danielebarchiesi@4 47 return 0;
danielebarchiesi@4 48 }
danielebarchiesi@4 49
danielebarchiesi@4 50 /* */
danielebarchiesi@4 51
danielebarchiesi@4 52 }
danielebarchiesi@4 53