JSON с переменной Javascript - PullRequest
       1

JSON с переменной Javascript

1 голос
/ 29 августа 2011

Я хотел бы проанализировать имя переменной в строку JSON:

JSON:

{
    "items": [
        {
            "id": "2000",
            "buttons": [{
                "text": systemvar.continue,
            }]
        }
}

systemvar.continue определен в Javascript.

Как мненаписать код JSON для использования переменной Javascript?

Есть идеи?

Бест Курт

Ответы [ 3 ]

3 голосов
/ 29 августа 2011

Если systemvar.continue определено в JavaScript, сделайте ваш JSON действительным следующим образом:

{
    "items": [
        {
            "id": "2000",
            "buttons": [{
                "text": "continue", // <-- only pass the property name
            }]
        }
}

А затем получите доступ к свойству "continue" systemvar, используя обозначение в квадратных скобках.

var result = systemvar[ json.items[0].buttons[0].text ];

Конечно, это жестко закодировано и предполагает, что на ваш разобранный JSON есть ссылка в переменной с именем json. Я предполагаю, что вы пересекаете структуру и в какой-то момент встретите text:"continue". Когда вы туда попадете, подключите его как имя свойства.

// in traversal
systemvar[ val.text ];

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

0 голосов
/ 29 августа 2011

Я думаю, что вы можете использовать JSONP .

На стороне клиента будет этот HTML-код:

<script>
function readData(json_arr) {
    //`json_arr` will be the javascript array.
    //do whatever you want to do with the array here.
}
</script>
<script src="your_server.example.com/getData?jsonp=readData"></script>

И сервер вернется:

readData(
{
    "items": [
        {
            "id": "2000",
            "buttons": [{
                "text": systemvar.continue,
            }]
        }
    }
)

Обратите внимание, что это означает, что возвращенный вами "массив JSON" автоматически выполняется механизмом JavaScript браузера.

0 голосов
/ 29 августа 2011

JSON - это безопасное, ограниченное подмножество синтаксиса JavaScript. Если вы хотите разрешить любой синтаксис JavaScript, включая потенциально небезопасный, используйте eval() вместо JSON.parse().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...