Files
phpy/lib/php/json.py

104 lines
2.3 KiB
Python

import phpy
HEX_TAG = 1
HEX_AMP = 2
HEX_APOS = 4
HEX_QUOT = 8
FORCE_OBJECT = 16
NUMERIC_CHECK = 32
UNESCAPED_SLASHES = 64
PRETTY_PRINT = 128
UNESCAPED_UNICODE = 256
PARTIAL_OUTPUT_ON_ERROR = 512
PRESERVE_ZERO_FRACTION = 1024
UNESCAPED_LINE_TERMINATORS = 2048
OBJECT_AS_ARRAY = 1
BIGINT_AS_STRING = 2
INVALID_UTF8_IGNORE = 1048576
INVALID_UTF8_SUBSTITUTE = 2097152
THROW_ON_ERROR = 4194304
ERROR_NONE = 0
ERROR_DEPTH = 1
ERROR_STATE_MISMATCH = 2
ERROR_CTRL_CHAR = 3
ERROR_SYNTAX = 4
ERROR_UTF8 = 5
ERROR_RECURSION = 6
ERROR_INF_OR_NAN = 7
ERROR_UNSUPPORTED_TYPE = 8
ERROR_INVALID_PROPERTY_NAME = 9
ERROR_UTF16 = 10
ERROR_NON_BACKED_ENUM = 11
def encode(_value, _flags=0, _depth=512):
return phpy.call('json_encode', _value, _flags, _depth)
def decode(_json, _associative=None, _depth=512, _flags=0):
return phpy.call('json_decode', _json, _associative, _depth, _flags)
def last_error():
return phpy.call('json_last_error', )
def last_error_msg():
return phpy.call('json_last_error_msg', )
class JsonSerializable():
def jsonSerialize(self):
return self.__this.call(f"jsonSerialize", )
def __init__(self):
self.__this = phpy.Object(f'JsonSerializable')
def getattr(self, name):
return self.__this.get(name)
def setattr(self, name, value):
self.__this.set(name, value)
class JsonException():
def __init__(self, _message="", _code=0, _previous=None):
self.__this = phpy.Object(f'JsonException', _message, _code, _previous)
def __wakeup(self):
return self.__this.call(f"__wakeup", )
def getMessage(self):
return self.__this.call(f"getMessage", )
def getCode(self):
return self.__this.call(f"getCode", )
def getFile(self):
return self.__this.call(f"getFile", )
def getLine(self):
return self.__this.call(f"getLine", )
def getTrace(self):
return self.__this.call(f"getTrace", )
def getPrevious(self):
return self.__this.call(f"getPrevious", )
def getTraceAsString(self):
return self.__this.call(f"getTraceAsString", )
def __str__(self):
return self.__this.call(f"__toString", )
def getattr(self, name):
return self.__this.get(name)
def setattr(self, name, value):
self.__this.set(name, value)