sencha touch 2.4.1 - получение значений массива, отправленных через строку json

Следующий код работает нормально,

//отправлено с php

echo("({'title':'$myTitle', 'message':'$myMessage'})");

// в бите ответа ajax в приложении Control of sencha touch

success: function(xhr,params)
{           
var data = Ext.JSON.decode(xhr.responseText.trim());
var aTitle=data.title;  //get the value of message, $myMessage
var aMessage=data.message;
console.log('Title:',aTitle,' - Message:',aMessage);
},

Это также, но я не могу получить отдельные данные, однако,

//из php, массив данных как и раньше, заголовок и сообщение, только их намного больше

$data=json_encode($myArray);  
echo "({'myData':'$data'})";

// в бите ответа ajax в приложении Control of sencha touch

success: function(xhr,params)
{           

var data = Ext.JSON.decode(xhr.responseText.trim());
var myArray=[];

Ext.Array.each(data.myData, function()
{
    myArray[count]= data.myData;    

    //this will spit out all the data from array.
    console.log('myArray contains:',myArray[count]);

    //but i wanted to select individual bit e.g.(pseudo code ish)
    myArray[0]=data.myData.title;

    or

    myArray[3]=data.myData.message; // that sort of thing

    count=count+1;          
 });
 },

В случае неудачи может кто-нибудь сказать мне, как это изменить:

//удалить не буквенно-цифровые символы myOutputString = myDataString.replace(/\W/g, '');

так что он избавляется от того же, за исключением - и , и .

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


person A.L    schedule 21.01.2015    source источник


Ответы (1)


L.

Если вы посмотрите документацию по API для Ext.Array здесь http://docs-origin.sencha.com/touch/2.4/2.4.1-apidocs/#!/api/Ext.Array

Обратный вызов Ext.Array.each принимает некоторые аргументы, первый из которых предназначен для данных, которые вам нужны. Поэтому я думаю, что вы хотите что-то вроде следующего.

Ext.Array.each(data.myData, function(data) {
 // Here data contains the data structure sent from your PHP code.
 console.log(data.title);
 console.log(data.message);
});

Надеюсь, это поможет!

person Sean Hayes    schedule 27.01.2015