sencha touch 2.4.1 - получение значений массива, отправленных через строку json
Следующий код работает нормально,
// отправлено с php
echo("({'title':'$myTitle', 'message':'$myMessage'})");
// в бите ответа ajax в приложении "Управление сенсорным приложением sencha"
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 в приложении "Управление сенсорным приложением sencha"
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, '');
поэтому он избавляется от того же самого исключения - и, и.
тогда я могу просто получить нужные мне биты из данных таким образом (но не в предпочтительном варианте).
1 ответ
L.
Если вы обратитесь к документации API для Ext.Array здесь, http://docs-origin.sencha.com/touch/2.4/2.4.1-apidocs/.
Обратный вызов 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);
});
Надеюсь, это поможет!