У меня есть объект JSON, созданный в PHP, этот объект JSON содержит еще одну экранированную строку JSON в одной из своих ячеек:
php > $insidejson = array('foo' => 'bar','foo1' => 'bar1');
php > $arr = array('a' => array('a1'=>json_encode($insidejson)));
php > echo json_encode($arr);
{"a":{"a1":"{\"foo\":\"bar\",\"foo1\":\"bar1\"}"}}
Затем, с Python, я пытаюсь деокодировать его с помощью simplejson:
>>> import simplejson as json
>>> json.loads('{"a":{"a1":"{\"foo\":\"bar\",\"foo1\":\"bar1\"}"}}')
Это происходит со следующей ошибкой:
Traceback (most recent call last):
File "", line 1, in ?
File "build/bdist.linux-i686/egg/simplejson/__init__.py", line 307, in loads
File "build/bdist.linux-i686/egg/simplejson/decoder.py", line 335, in decode
File "build/bdist.linux-i686/egg/simplejson/decoder.py", line 351, in raw_decode
ValueError: Expecting , delimiter: line 1 column 14 (char 14)
Как я могу получить этот объект JSON, декодированный в Python? И PHP, и JS успешно его декодируют, и я не могу изменить его структуру, поскольку это потребует серьезных изменений во многих различных компонентах на разных языках.
Спасибо!