Разбор JSON в JQuery - PullRequest
       20

Разбор JSON в JQuery

0 голосов
/ 31 октября 2009

У меня есть php-файл somejson.php, который повторяет кодированный в json массив

{"jsonone":"first json","jsontwo":"second json"}

Я пытаюсь получить доступ к ответу с помощью jquery ajax, чтобы использовать эти данные вне оценки вызова ajax. Он продолжает давать мне все виды объектов (объектов) или неопределенных ошибок.

Полагаю, это так же просто, как и неправильный синтаксис, но это меня беспокоит. Я подумал, что спросить

var mydata = {};
$.ajax({
    url: 'somejson.php',
    async: false,
    dataType: 'json',
    success: function (json) {
           mydata = json;
           mydata[jsonone] = json.jsonone;
           mydata[jsontwo] = json.jsontwo;
           alert(json[jsonone] . json[jsontwo]);           
           alert(mydata[jsontwo] . mydata[jsontwo]);    
  }
});  

//later will do some stuff with mydata jsonone and jsontwo

Что я делаю здесь неправильно?

Ответы [ 2 ]

2 голосов
/ 31 октября 2009

Да, простые синтаксические ошибки: -)

Вам нужно поместить кавычки вокруг ваших хеш-ключей и использовать оператор '+' для объединения строк:

var mydata = {};
$.ajax({
    url: 'somejson.php',
    async: false,
    dataType: 'json',
    success: function (json) {
        mydata = json;
        mydata['jsonone'] = json.jsonone;
        mydata['jsontwo'] = json.jsontwo;
        alert(json['jsonone'] + json['jsontwo']);
        alert(mydata['jsontwo'] + mydata['jsontwo']);
}
});
1 голос
/ 31 октября 2009

Я думаю, что ваша проблема проистекает из точек в ваших предупреждениях.

Конкатенация строк в javascript выполняется с использованием +, а не ., как в php.

alert(json['jsonone'] + json['jsontwo']);
alert(mydata['jsontwo'] + mydata['jsontwo']);

Кроме того, индексы массива должны быть строками (заключаться в одинарные или двойные кавычки).

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