JSON .parse должен быть рекурсивным?

Я разбираю строку json следующим образом:

ring = JSON.parse(response);

Теперь кольцо является объектом, а ring.stones - это просто строка когда это тоже должен быть объект.

Если я позвоню:

ring.stones = JSON.parse(ring.stones);

Теперь это правильный объект.

Я не сказал » Не знаю, правильно ли это поведение или, может быть, у меня есть проблема, мешающая его рекурсивному синтаксическому анализу? Если предполагается рекурсивный синтаксический анализ, существуют ли какие-либо известные проблемы, которые могли бы предотвратить это?


Обновление

Вот полный ответ перед синтаксическим анализом:

{"ring_id": "9", "stone_count": "4", "style_number": "style 4", "syn10": "436.15 "," gen10 ":" 489.39 "," syn14 ":" 627.60 "," gen14 ":" 680.85 "," available ":" yes "," type ":" ring "," engravings_count ":" 0 ", "engravings_char_count": "0", "engravings_band": "10", "камни": "[{\" stone_id \ ": \" 27 \ ", \" ring_id \ ": \" 9 \ ", \" Stone_rotation \ ": \" 0.00 \ ", \" Stone_number \ ": \" 4 \ ", \" Stone_mm_width \ ": \" 2.50 \ ", \" Stone_mm_height \ ": \" 2.50 \ "}]", " images ":" [{\ "title \": \ "белое золото \", \ "источник \": \ "Style4_4_W_M.png \"}, {\ "title \": \ "желтое золото \", \ " источник \ ": \" Style4_4_Y_M.png \ "}]"}


Обновление 2

Основываясь на ответе mikerobi, я смог выяснить, что происходит:

Вот где я это закодировал:

$row = $sth->fetch(PDO::FETCH_ASSOC);

$row['stones'] = getStones($ring_id);
$row['images'] = getRingVariations($ring_id);

return json_encode($row);

Но функции getStones и getRingVariations возвращали json_encode 'd строк. Мне нужно было изменить их, чтобы вернуть простые строки. USER_ID NUMBER DATE_ADDED DATE DATE_VIEWED DATE DOCUMENT_ID VARCHAR2 URL ...

Привет, у меня есть таблица со столбцами:

* с использованием oracle

ID                  NUMBER
USER_ID            NUMBER
DATE_ADDED          DATE
DATE_VIEWED        DATE
DOCUMENT_ID        VARCHAR2
URL                VARCHAR2
DOCUMENT_TITLE      VARCHAR2
DOCUMENT_DATE        DATE

Я хочу знать, как я могу получить последний добавленный документ для данного пользователя.

Select * FROM test_table WHERE user_id = value AND (do something with date_added column)

Спасибо

28
задан Matt 3 November 2010 в 19:57
поделиться